HitTestの使い方について

解決


あこ  2006-05-11 11:24:10  No: 61761  IP: 192.*.*.*

たびたび失礼いたします。

CListCtrl::HitTestの使い方がよくわからず、質問させていただきました。

マウスカーソルの位置が、リストコントロールの、項目の上かどうかを
調べたいのですが…

例>
リストコントロールが5行ある場合
1行目      あいうえお
2行目      かきくけこ
3行目      空行
4行目      空行
5行目      空行

1,2行目にカーソルがある場合には、なにかしらの処理。
空行にカーソルがある場合は、何もしない。

という風にしたいのですが。。

アドバイスお願いします;

環境→Windows2000・VC++.NET2003・MFC使用

編集 削除
dairygoods  2006-05-11 12:26:07  No: 61762  IP: 192.*.*.*

こんな風にします。

CPoint pt;
GetCursorPos(&pt);
m_list.ScreenToClient(&pt);
int item = m_list.HitTest(pt);
if (item が1,2行目) {
  なにかしら;
}

編集 削除
あこ  2006-05-11 13:25:25  No: 61763  IP: 192.*.*.*

dairygoods様、ありがとうございます。
>CPoint pt;
>GetCursorPos(&pt);
>m_list.ScreenToClient(&pt);
>int item = m_list.HitTest(pt);
>if (item が1,2行目) {
>  なにかしら;
>}

上記処理を参考にしましたら、思ってた通りの処理になりました!
ありがとうございましたm(_ _)m

以下解決ソース
CPoint pt;
GetCursorPos(&pt);
m_list.ScreenToClient(&pt);
int count = m_list.GetItemCount();
int item = m_list.HitTest(pt);
if (0 <= item && item < count) {
  なにかしら;
}

編集 削除