ウィンドウハンドルの取得方法




自画面のウィンドウハンドルを取得したい時は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
まで送信してください。