MFC坐标问题

页面空间中的矩形被称为窗口设备空间中的矩形被称为视口。

页面空间与设备空间的转换示意图:

页面空间到设备空间的转换需要两个矩形的宽高比(转换因子)。

设备空间到物理空间转换的唯一作用是平移,并由Windows的窗口管理部分控制。

几乎所有的GDI函数采用的坐标是逻辑坐标。windows必须将逻辑单位转换为设备单位,即像素。

Windows对所有的消息和非GDI函数采用设备坐标。

Windows默认的映射方式为MM_TEXT,它的逻辑单位和设备单位相同。SetMapMode函数可改变映射方式。

MM_TEXT模式下逻辑坐标与视口坐标间的转换:

通过鼠标等传递消息获得的坐标为设备坐标(视口坐标),以像素为单位,因此用MM_TEXT模式下,无需在两坐标系间进行转换。

改变窗口原点

SetViewportOrg函数设置视口原点,SetWindowOrg函数设置窗口原点。

原文地址:https://www.cnblogs.com/SupremeGIS-Developer/p/9125544.html