掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ウィンドウを継承するには? (ID:66466)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ウィンドウクラスに登録するのは Hoge2でもHoge3でもHoge1::DefWinProcとする。 class Hoge1 { static ... DefWinProc ...; virtual int WinProc(msg,...) = 0; }; 以下は正しいか知らん。適当に想像して書いてる。 std::map<HWND,Hoge1*> g_WndManager; Hoge3::CreateWindo(...) { hwnd = ::CreateWindow(...が成功したら g_WndManagerにhwnd,thisを追加する。 厳密にはMFCは違う方法でやっている。 } Hoge1::DefWinProc(HWND hwnd, wparam, lparam) { g_WndManagerからhwndを探し、Hoge1*を得る。 return pHoge1->WinProc... } ただしこの方法では WM_CREATEなど::CreateWindowが終わる前に来るメッセージのとき まだg_WndManagerに登録されていないからpHoge1->WinProcが呼べない。 MFCではフックとか使って何とかやっているらしいが俺はしらん。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.