ツリービューのマウス移動の下のアイテムの取得方法は?

解決


ぴょぴょ  2007-09-06 11:47:22  No: 66244  IP: 192.*.*.*

開発環境は Windows XP Home SP2、VC++2003(SDK) です。

[質問]
(1)ツリービューでマウスの移動時にメッセージを出したいです。
  マウスが移動した場合はどのように取得しますか?
  サブクラス化などして WM_MOUSEMOVE を使えばいいのですか?
(2)マウスの移動した下にあるアイテム(文字列)を取得するには?
  クリックしないでもマウス座標からアイテムの位置が分かりますか?

上の2つを教えて下さい。
お願いします。

編集 削除
へろり  2007-09-06 15:34:35  No: 66245  IP: 192.*.*.*

できます。

(1)についてはおっしゃる通りサブクラス化で対処できます。

(2)はツリービューにTVM_HITTESTを投げることで対処できます。

編集 削除
ぴょぴょ  2007-09-06 21:55:59  No: 66246  IP: 192.*.*.*

へろりさん。
有り難うございます。

>(1)についてはおっしゃる通りサブクラス化で対処できます。
やっぱサブクラス化しかないんだ。

>(2)はツリービューにTVM_HITTESTを投げることで対処できます。
調べてみました。そしたら
HTREEITEM TreeView_HitTest( HWND hTree, LPTVHITTESTINFO lpHT );
というマクロが存在することが判明しました。
次のサイトを参考にすることで出来そうです。
http://www.kumei.ne.jp/c_lang/sdk2/sdk_115.htm

有り難うございました。

編集 削除