ウィンドウハンドルの取得方法
自画面のウィンドウハンドルを取得したい時はGetSafeHwnd()関数を使います。
この関数を使えば簡単にウィンドウハンドルの取得ができます。
この関数はCWndクラスのメンバ関数なので、呼び元のクラスがCWndの派生クラスでなければ、
使えません。
N村が引っかかった現象として、MainFrmのウィンドウハンドルとViewのそれは違う、
という事がありました。画面のOnCreate時にMainFrmのウィンドウハンドルを取得して、
PostMessage()関数で、そのウィンドウハンドルに対してウィンドウメッセージを送信
します。そして、Viewクラスの関数で受信させようとしたのですが、Viewクラスでは
全然受信できなくて5時間ぐらい悩んだ事があります。
(サンプル)
HWND WinHdl; // ウィンドウハンドル
// ウィンドウハンドルを取得する
WinHdl = GetSafeHwnd();
// 取得の成否チェック
if( WinHdl == NULL )
{
// エラーでリターンする
return( FALSE );
}
// 正常でリターンする
return( TRUE );
N総研ソフトウェア開発部のTOPに戻る。
このページに関するご意見・質問は
ドンタコスN村 E-mail:wnaka@coco.ned.co.jp
まで送信してください。