dポイントプレゼントキャンペーン実施中!

親ウィンドウ内に子リストウィンドウを作り
子リストウィンドウを左クリックしたときに
「子リストウィンドウに何かイベントが発生した」
ということを
子リストウィンドウにメッセージを送ってもらうことなく
親ウィンドウが知る方法は有るのでしょうか?

子リストウィンドウのウィンドウ処理関数を作りたくないのでできるだけ子リストウィンドウの処理はデフォルト処理で済ませたいのですが・・・

A 回答 (2件)

WM_COMMANDでLBN_~のメッセージは親ウィンドウに送られてきているはずです。



それ以外のメッセージを取得するにはサブクラス化
するしかないです。

この回答への補足

ありがとうございます。
WM_PARENTNOTIFY
で子リストボックスが左クリックされたという情報は得られるのですが
子リストボックスの選択項目に応じて親ウィンドウに画像を表示させる場合
左クリック時点では選択項目が左クリック前の選択項目なので親ウィンドウに表示される画像が1左クリック分遅れて表示されてしまいます。
それを回避するためにタイマーを使うことしか思い浮かばないのですが他に方法はあるのでしょうか?

補足日時:2003/06/08 21:58
    • good
    • 0

>子リストボックスの選択項目に応じて親ウィンドウに画像を表示させる場合


>左クリック時点では選択項目が左クリック前の選択項目なので親ウィンドウに表示される画像が1左クリック分遅れて表示されてしまいます。

普通はそんな時にマウスメッセージは使用しません。
なぜならリストボックスはキーボードで操作可能だからです。
システムが準備しているコントロールに標準的な動作を期待しているのであれば、自分で特殊なことはしないほうがいいですよ。


なんで、素直にLBN_SELCHANGEを使用しましょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今まではすべての子ウィンドウのIDをNULLにしていましたがNO1の指摘の通り素直に
リストボックスにID番号を打ちCOMMANDメッセージのそのIDに応答する方法が一番良さそうです。

お礼日時:2003/06/09 06:07

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