通知
すべてクリア
Topic starter
2009年2月24日 4:18 PM
VS2005 MFC、XPで開発しています。
ダイアログベースで、その上にピクチャーボックスを置きます。
そのピクチャーボックス上でのマウスの操作イベントを取りたいです。
ピクチャーボックスのプロパティで確認できるイベントは、
STN_CLICKED
STN_DBLCLK
STN_DISABLE
STN_ENABLE
しかないようです。
MouseMoveとかとりたいのですが、どのようにすればよいのでしょうか?
2009年2月24日 10:58 PM
ピクチャーに限らず親ウィンドウでは特定の通知しか来ないよ。
WM_MOUSEMOVEはそこにあるウィンドウに送られるから。
ピクチャーをサブクラス化するか
親ウィンドウのPreTranslateMessageで覗くか
のどちらかだな。
MFCなのでサブクラス化は、
ピクチャーをIDC_STATIC(-1)以外のユニークなものにして
ピクチャーをコントロールとして変数を作らせて
その変数のクラスの派生クラス作って
親ウィンドウのヘッダファイルに#include 派生クラスのヘッダを追加して
その変数のクラスを派生クラスに置き換える。
そうすればその派生クラスで受け取れるよ。
たぶん探せばやり方見つかると思う。
PreTranslateMessageは調べればわかると思うので略。
2009年2月25日 12:12 PM
ピクチャーボックスじゃなくてピクチャーコントロールではないかと思いますが
ためしに
ビットマップタイプ+リソースから読み込み(それ以外いじらず)
で作ってみたところ、
ベースのダイアログに対して、メッセージが飛んできました