HitTestの使い方について

解決


あこ  2006-05-11 20:24:10  No: 61761

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

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

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

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

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

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

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

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


dairygoods  2006-05-11 21:26:07  No: 61762

こんな風にします。

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


あこ  2006-05-11 22:25:25  No: 61763

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) {
  なにかしら;
}


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加