鼠标消息的坐标是什么单位的呢?解决方法
鼠标消息的坐标是什么单位的呢?
鼠标消息的lParam 发送过来的是什么单位的坐标呢?
看上去数值很大应该不是象素吧
------解决方案--------------------
就是像素啊
只不过是逻辑像素,要到屏幕像素,需要转换
------解决方案--------------------
像素,相对值,不是屏幕的绝对值
------解决方案--------------------
是基于用户区域左上角的像素值
------解决方案--------------------
有多大?移到屏幕右下角后,有65535这么大么?
------解决方案--------------------
鼠标消息返回的是屏幕坐标系统下的像素值
------解决方案--------------------
应该是以客户区左上角为原点的像素值吧。
比如,如果是滚动视图,要把滚动条的位置加上才能得到全局的坐标。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
鼠标坐标的单位是像素,分为屏幕区和客户区。
屏幕区(Screen)以屏幕左上角为原点;
客户区(Client)以鼠标所指窗口(处理鼠标消息的窗口)左上角为原点。
所以,需要转换,函数是ClientToScreen()和ScreenToClient()
两者的关系是:客户区是屏幕区的一部分。
LZ查可以通过ClientToScreen()和ScreenToClient(),参阅MSDN。
鼠标消息的lParam 发送过来的是什么单位的坐标呢?
看上去数值很大应该不是象素吧
------解决方案--------------------
就是像素啊
只不过是逻辑像素,要到屏幕像素,需要转换
------解决方案--------------------
像素,相对值,不是屏幕的绝对值
------解决方案--------------------
是基于用户区域左上角的像素值
------解决方案--------------------
有多大?移到屏幕右下角后,有65535这么大么?
------解决方案--------------------
鼠标消息返回的是屏幕坐标系统下的像素值
------解决方案--------------------
应该是以客户区左上角为原点的像素值吧。
比如,如果是滚动视图,要把滚动条的位置加上才能得到全局的坐标。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
鼠标坐标的单位是像素,分为屏幕区和客户区。
屏幕区(Screen)以屏幕左上角为原点;
客户区(Client)以鼠标所指窗口(处理鼠标消息的窗口)左上角为原点。
所以,需要转换,函数是ClientToScreen()和ScreenToClient()
两者的关系是:客户区是屏幕区的一部分。
LZ查可以通过ClientToScreen()和ScreenToClient(),参阅MSDN。