以下是 HitTest 方法的基本使用示例:
CPoint point(100, 50); // 指定点的坐标
int nIndex = m_listCtrl.HitTest(point);
在这里,假设 m_listCtrl 是您的 CListCtrl 对象的一个实例。调用该方法后,nIndex 变量将包含与指定点相对应的列表控件项的索引。如果鼠标点击的位置不在任何项上,则返回值为 -1。
请注意,HitTest 方法默认情况下只检查列表控件的可见区域,如果您希望检查整个控件,可以使用 LVHT_ONITEM 标志,如下所示:
LVHITTESTINFO hitTestInfo;
hitTestInfo.pt = point;
m_listCtrl.SubItemHitTest(&hitTestInfo);
int nIndex = hitTestInfo.iItem;
这个例子中,我们使用 LVHITTESTINFO 结构来传递鼠标点击的坐标,并调用 SubItemHitTest 方法。返回的 iItem 将包含与指定点相对应的列表控件项的索引。
使用 HitTest 方法可以方便地确定鼠标点击位置所对应的列表控件项,从而进行相应的操作。
转载请注明出处:http://www.pingtaimeng.com/article/detail/18619/MFC/CListCtrl