mfc何时使用逻辑/设备坐标

时间:2016-06-18 09:37:19

标签: c++ winapi mfc

我听说矩形,鼠标坐标和其他涉及绘图的东西都使用设备坐标。这是真的?有什么方法可以告诉我我是否有逻辑或设备坐标?

我可以查看给出坐标的函数文档,但有时它们没有明确说明这些是逻辑坐标还是设备坐标。例如,GetCursorPos函数的文档说它“在屏幕坐标中检索鼠标光标的位置”。

我假设屏幕坐标与设备坐标相同?这是否意味着我必须将我从函数获得的屏幕坐标转换为客户端坐标?

1 个答案:

答案 0 :(得分:1)

您知道屏幕左上角的坐标(0,0)是什么。但是在绘制图表时,在纸面上,(0,0)可能位于左下方,也可能位于图表绘图纸的中心。

默认情况下,逻辑和坐标以及物理/屏幕坐标相同,(0,0)指向左上角。但是如果你想从左下角到屏幕中间的某个地方绘制一条线,那么你会学到或正在练习的数学/三角学呢?那么,您可以将逻辑坐标系更改为您喜欢的内容。

您使用SetMapMode更改逻辑坐标系。您稍后可以使用LPtoDPDPtoLPClientToScreenScreenToClient等进行映射,并将物理监视器用于您的窗口坐标映射。

About Coordinate Spaces and Transformations