获取Mouse

时间:2017-01-01 12:52:26

标签: c++ mfc clistbox

我有一个简单的CListBox控件。我在其中动态添加文本。是否有可能获得鼠标当前在列表框上悬停的项目的索引? 基本上,我想根据鼠标位置显示listBox中每个项目的工具提示。

非常感谢代码示例。

2 个答案:

答案 0 :(得分:2)

CListBox::ItemFromPoint成员返回距离某点最近的项目的项目索引。

该点必须位于CListBox的客户端坐标中。如果您在屏幕坐标中收到它们(例如通过致电GetCursorPos),则必须在CListBox上翻译CWnd::ScreenToClient

第二个参数( bOutside )告诉您位置是否在某个项目上。成员函数分别返回FALSETRUE

答案 1 :(得分:0)

我正在写这个答案,以便其他人可以得到帮助以防其他人遇到这个问题。 首先要做的事情;您无法直接处理来自Clistbox的鼠标移动消息。因此,您基于ClistBox类创建一个新类,然后在该类中处理OnMouseMove()。然后,在OnMouseMove()函数内,您应该根据鼠标坐标获取clistbox中的项目(如IInspectable所述)。 / p>

代码示例;见下文。

BOOL b;
int n = ItemFromPoint(point,b);
CString str;
GetText( n,str);
AfxMessageBox(str);