• ベストアンサー

グループボックスのBN_CLICKEDイベント

グループボックスコントロールのBN_CLICKEDイベントが発生しません。 NotifyプロパティはTrueとしています。 その他のプロパティもTrue、Falseどちらも試してみましたが 割り込みに入りません。 何か足りない部分があるのでしょうか? *VB6.0からVC++2010への移植作業中です。  VB6.0の Frame Control をVC++の Groupe Box Control としました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

グループボックスは種類としてはボタンのコントロールですが、グループボックスとして設定されている場合にはクリックされてもメッセージの処理を行いません。これは、クリックされた場合に処理が必要かどうかを判定する、WM_NCHITTESTというメッセージに対して、HTTRANSPARENTというコードを返しているためです。 逆にいうと、この処理があるからこそ、グループボックス内に配置されたコントロールは、クリック等のメッセージを受け取ることができます。 グループボックスがクリックされたことを知りたい場合は、ボタンコントロールをサブクラス化してWM_HITTESTでの処理を変更するなどの処理が必要になると思います。 MFCを使用しているなら、親ウィンドのPreTranslateMessageでも処理できると思います。

aki2004-09-08
質問者

お礼

回答ありがとうございます。