读书人

GetCursorPos获取坐标值不准确,该怎么

发布时间: 2012-05-22 18:18:54 作者: rapoo

GetCursorPos获取坐标值不准确
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
CPoint pt;
CRect rt;
GetCursorPos(&pt);
ScreenToClient(&pt);

为了实现点击操作Tree,我用了如上面的方法,通过得到坐标值来确定当前鼠标点中的项,可是总是捕捉不到正确的坐标值。分辨率为1920*1080的屏幕,最后一次点击时调试出现的是842,577.哪位高手知道原因吗?多谢了


[解决办法]
ScreenToClient(&pt);
这句改成:ClientToScreen试试,你可能转错了,
[解决办法]
如果不行,就不要加了ClientToScreen和ScreenToClient(&pt);

[解决办法]
// convert to client
ScreenToClient(&pt);
// convert to tree
MapWindowPoints((CWnd*)&LeftTree,&pt,1); // to tree
// get tree subitem text
HTREEITEM hti=LeftTree.HitTest(pt,&Flag);

读书人网 >VC/MFC

热点推荐