プロが教えるわが家の防犯対策術!

MFCで独自のCWndから派生させたカスタムコントロール作っています。

子ウインドウが2つ重なりあっていたとして、
そのウインドウをクリックしたとき
その下の子ウインドウにもクリックしたというメッセージを
そのまま下のウインドウにスルーさせることって可能でしょうか?
親からPreTranslateMessage等で
両方に伝えることは可能ですが、子同士で実現できると
便利だと思いまして質問します。

ボタンでも良いのですが良い方法は無いでしょうか?
メッセージフックをかけるんしょうか。

A 回答 (2件)

「下のウィンドウ」というのが,「独自のCWndから派生させたカスタムコントロール」なのか,


そうでないのか,で使える方法が若干変わってくると思います。

前者の場合でしたら,
最初に「クリックしたというメッセージ」を受け取ったウィンドウが,
EnumChildWindows で自分の兄弟たちを列挙し,独自のメッセージでも送ってやったらどうでしょうか?
    • good
    • 0
この回答へのお礼

EnumChildWindows なんてあるのですね。
独自のメッセージでないと、
結局自分が受け取ってしまうわけですか。
ありがとうございました。大変参考になりました。

お礼日時:2003/11/15 22:27

1.WM_NCHITTESTでHTTRANSPARENTを返し、子ウィンドウにメッセージがこないようにする(クリックなどは直接その下のウィンドウに行く)。



2.サブクラス化し、任意のメッセージハンドラを作成し、そこから親ウィンドウに対してSendMessageを送る。

てなところでしょうか?

両方とも一長一短なので、どちらでやるかはケースバイケースですかね。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。
便利に使えるようにするのは難しそうですね。
子がサブクラス化で取得したメッセージメッセージは
親へは届くのでしょうか。

お礼日時:2003/11/14 14:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!