いつもお世話になっています。すみませんが、教えてください。
Visual Studio 2005 VC++ MFC を使っています。
Picture Control(CStatic) を CFormView に貼り付けて、
その上でのマウス左ボタンDownのイベントを受けたいのですが
うまくいきません。
CStaticの派生クラスを作成して、Pictureコントロールのコントロール変数を
追加し、変数 CStatic m_xxx のクラス名を 派生クラスの名前に編集修正しました。
そして、メッセージ WM_LBOTTUNDOWN のイベント関数を作成してみましたが、
そこに処理が飛んできません。
=WM_CTLCOLOR等 の=付きイベント関数には飛んでくるのですが、、、、、、
=のついていない通常のメッセージは受け取れないようなのです。
受け取る為になにか記述しなければいけないコードがあるのでしょうか?
熟練者ならあたりまえの事が、素人の私には解っていないだけだと思うのですが、
ご教示よろしくお願いします。
対象のコントロールに SS_NOTIFY (通知)スタイルがついていないとか。
ModifyStyleで設定してください。
Blueさま、早々にレスいただきありがとうございます。
ご指摘の通りでした。
Picture Control の プロパティにNotifyというのがあったので、
それをtrueにするとマウスDownイベントでイベント関数がコールされました。
素人ですので、以前から Notify てなんだろうと思い続けていたのですが、少し、
理解できたように思います。
派生クラスの扱いは難しいですね。
今後も解らない点が出てくると思います。
その時はすみませんが、また力を貸してください。
ありがとうございました。
もう、終わっちゃってますが、
VS2005を使われているのでしたら、プロパティウインドウの下の方に余白に
選択したプロパティの説明が日本語で出ていたと思います。
出ていないようでしたら項目を右クリックして出てきたコンテキストメニューに
説明と言うのがあると思うのでこれにチェックを入れると出てくると思います。
一度、コントロールのプロパティすべてについて確認しておくと良いかもしれません。
実は知らないだけで便利なプロパティを見逃しているかもしれません。