将屏幕鼠标坐标转换为窗口坐标

时间:2012-06-01 12:26:46

标签: c++ windows winapi coordinate-transformation mouse-coordinates

这是我上一个问题的继续 - > Draw mouse pointer icon? 我想在桌面上的特定窗口中绘制鼠标,我已经知道如何绘制鼠标以及如何跟踪真实鼠标的移动。 但我无法转换屏幕坐标,这是我想要做的示例: 当REAL鼠标位于左上角0,0时,DRAWN鼠标位于我特定窗口的0,0,当REAL鼠标位于右下角1600,900时,DRAWN鼠标位于我的700,400具体窗口。

如果有人不明白这个问题,我会重新解释。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要在窗口尺寸上缩放鼠标位置。

让DX和DY成为桌面尺寸。让WX和WY成为您的窗口大小。设(Dmx,Dmy)是桌面上原始鼠标位置的坐标。然后根据您的要求将鼠标放在窗口中的位置为(Dmx / DX * WX,Dmy / DY * WY)。在编码时,请记住确保除法发生在浮点数上。