SetWindowOrgEx的参数总是使用逻辑单位。在这个呼叫之後,逻辑点(-cxClient / 2,-cyClient / 2)映射为装置点(0,0),即显示区域的左上角。
您不会将这两个函式一起用,除非您知道这么做的结果:
这意味著逻辑点(-cxClient/2,-cyClient/2)将映射为装置点(cxClient/2, cyClient/2),结果是如下所示的座标系:
您可以使用下面两个函式取得目前视埠和视窗的原点:
其中pt是POINT结构。由GetViewportOrgEx传回的值是装置座标,而由GetWindowOrgEx传回的值是逻辑座标。
您可能想改变视埠或者视窗的原点,以改变视窗显示区域内的显示输出-例如,回应使用者在卷动列内的输入。但是,改变视埠和视窗原点并不能立即改变显示输出,而必须在改变原点之後更新输出。例如,在第四章的SYSMETS2程式中,我们使用了iVscrollPos值(垂直卷动列的目前位置)来调整显示输出的y座标:
我们可以使用SetWindowOrgEx获得同样的效果: