光标点击客户区的工具栏的左下角的光标位置//不试不知道,一试吓一跳

光标点击客户区的工具栏的左上角的光标位置//不试不知道,一试吓一跳
分辨率是1440*900的
CRect rect
GetClientRect(rect)//Height()==592


POINT c;  
GetCursorPos(&c);
CRect rect;
GetClientRect(&rect);
ScreenToClient(&c);
c.x;
c.y;
c{x=1036 y=322}
//注释掉ScreenToClient(&c);,是下面的坐标。
c{x=469 y=218}

------解决方案--------------------
引用:
啊!为什么不是0,0 而是x=1036 y=322
引用:楼主到底吓什么了?

c{x=1036 y=322}  这个坐标的的原点是你ScreenToClient所在this控件的左上角为0,0点的
c{x=469 y=218}   这个坐标是的原点是你整个显示屏左上角为0,0点的

LZ没明白ScreenToClient()函数作用吗?未用此函数是得到的光标坐标c{x=469 y=218} 是屏幕坐标,是在整个屏幕的物理坐标,范围只能是 c{x=0,y=0}到 c{x=1440, y=900}。
用了ScreenToClient()得到的是当前窗口的坐标,即c{x=1036 y=322} ,这个坐标没有范围,因为窗口可能有滚动条。

------解决方案--------------------
GetClientRect要看你当前视图对象的得出的Rect
------解决方案--------------------
不看代码不知道,一看吓一跳光标点击客户区的工具栏的左下角的光标位置//不试不知道,一试吓一跳