祝大家有美好的一天。这是我在这里的第一篇文章。我正在阅读“使用 MFC 编程 Windows - J Prosise(MS Press)”
在第二章中,我遇到了 2 个让我非常困惑的 GDI 函数,我引用了以下文字:
SetViewportOrg 和 SetWindowOrg 很容易混淆,但是它们之间的区别实际上是很清楚的。使用 SetViewportOrg 将视口原点更改为 (x,y) 会告诉 Windows 将逻辑点 (0,0) 映射到设备点 (x,y)。使用 SetWindowOrg 将窗口原点更改为 (x,y) 基本上是相反的,告诉 Windows 将逻辑点 (x,y) 映射到设备点 (0,0) - 显示表面的左上角。在 MM_TEXT 映射模式下,两个函数之间唯一真正的区别是 x 和 y 的符号。在其他映射模式中,还有更多的功能,因为 SetViewportOrg 处理设备坐标,而 SetWindowOrg 处理逻辑坐标
我对此感到非常困惑,就像我们将视点原点更改为 (50,50) 然后使用 dc.ellipse (0,0,50,50) 它将从设备点 (50,50) 开始原点,但是如果我们将窗口原点更改为 (50,50) 是否意味着现在逻辑点 (50,50) 将映射到 (0,0) 如果是这样,椭圆不会超出客户端的区域上区?映射模式是 MM_LOWENGLISH 还是其他什么?届时情况将如何变化?请如果有人能对此事有所了解,我将不胜感激