人生で一番思い出に残ってる靴

VC++6.0でウインドウA上にリストBをオーナードローしています。
リストBのアイテムが選択されたことは、ウインドウAに送られるWM_DRAWITEMのDRAWITEMSTRUCT構造体を調べればいいことがわかったのですが、リストB上でマウスがどこにあるか調べるにはどうしたらいいのでしょうか。
やりたいことは、リストB上のアイテムにポインタを合わせると、その内容にあわせて情報ウインドウをポップアップ表示するということです。
つまり、リストBに送られるMOUSEMOVE等を処理したいときにはどうすればいいのでしょうか。ウインドウAのプロシージャーで対応できるのでしょうか。

A 回答 (2件)

単純なOwnerDraw程度であれば親のウィンドウで処理してもよいと思いますが、少し込み入ったことをするのであれば、サブクラスするのをお勧めします。


VC6であれば、クラスウィザードで CListBoxまたはCListCtrlから自前のクラスを派生し作成します。
通常の使い方であれば、今宣言してあるCListBoxまたはCListCtrlを自分のクラス名に置き換えるだけです。
あとは、自分のクラスなので、様々なメッセージを処理することが出来ます。
今回のように後で使いまわし出来そうな?機能を追加する場合のやり方ですね。
    • good
    • 0
この回答へのお礼

参考になりました。
たいした処理をするつもりはないので、親で処理することにしました。
ありがとうございました。

お礼日時:2006/06/26 01:13

リストとしか書かれていないので判断付きませんが、


リストビューであれば
ListView_HitTest
LVM_HITTEST
あたりをMSDNでひいてみるといい感じになると思います。
リストボックスであれば、、、
すいません。わかりません><
    • good
    • 0
この回答へのお礼

すいません。情報不足でした。
リストボックスでの話でしたが、HitTestは参考になりました。ありがとうございました。

お礼日時:2006/06/26 01:11

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