動的に配置したコントロールでイベントメッセージを受け取る方法

[戻る]
えふ 2003/02/13(木) 16:48:31
Win2K, VC++ 6.0 SP5, MFC にて開発しております。
ダイアログベースのアプリを作成して、ボタンを押下したタイミングで動的にCStaticの派生コ
ントロール(CMyStaticクラス)をダイアログ上に配置するようにしました。
ここで、このCMyStaticオブジェクトを左クリックした時にある動作をさせようと、
CMyStatic.cpp内で以下のコードを追加しました。

void CMyStatic::OnLButtonDown(UINT nFlags, CPoint point) 
{
    CStatic::OnLButtonDown(nFlags, point);

    ....
}

しかし、このコードにブレークポイントを設定してデバッグしてみたところ、左クリックをして
もこのコードに飛んできません。
おそらく、ダイアログクラスのOnLButtonDown()に飛んでいるのだと思われますが、これを
CMyStatic::OnLButtonDown()に飛ばすにはどうすれば良いのでしょうか?
SubclassDlgItem()を使うのかと思いCMyStaticをCreateした後にSubclassDlgItem()を追加
したのですがうまくいきませんでした。
他にやらなければならないことはありますでしょうか?
ご助言いただければ幸いです。

dairygoods 2003/02/13(木) 17:15:04
スタイルにSS_NOTIFYを追加すれば通知されると思います。

えふ 2003/02/13(木) 18:01:29
[[解決]]
ありがとうございます。
SS_NOTIFYを追加することで解決しました。
言われてみて、CButtonでBS_NOTIFYというのがあるのを思い出しました。
CStatic::Create()のヘルプからStaticスタイルをずっと眺めてたのですが、それらしいもの
がなく悩んでおりました。
しかし、CStaticの概要にしっかりと書かれてますね。
お騒がせしました。

古いスレッドには追加発言できません。