• ベストアンサー

オーナードローのリストに対するプロシージャー

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

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

  • ベストアンサー
  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.2

単純なOwnerDraw程度であれば親のウィンドウで処理してもよいと思いますが、少し込み入ったことをするのであれば、サブクラスするのをお勧めします。 VC6であれば、クラスウィザードで CListBoxまたはCListCtrlから自前のクラスを派生し作成します。 通常の使い方であれば、今宣言してあるCListBoxまたはCListCtrlを自分のクラス名に置き換えるだけです。 あとは、自分のクラスなので、様々なメッセージを処理することが出来ます。 今回のように後で使いまわし出来そうな?機能を追加する場合のやり方ですね。

yoiko77
質問者

お礼

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

その他の回答 (1)

  • keibou21
  • ベストアンサー率31% (18/58)
回答No.1

リストとしか書かれていないので判断付きませんが、 リストビューであれば ListView_HitTest LVM_HITTEST あたりをMSDNでひいてみるといい感じになると思います。 リストボックスであれば、、、 すいません。わかりません><

yoiko77
質問者

お礼

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

関連するQ&A