在windows程序设计中,MM_TEXT模式下逻辑坐标和设备坐标原点默认是(0 , 0) ,在客户区左上角。x轴从左到右增加,y轴从上到下增加。当使用SetViewportOrgEx() 和 SetWinodwOrgEX()函数修改设备坐标系和窗口(逻辑)坐标系时,我们该怎么简单的找到逻辑坐标系点(0 , 0 )在变换后的位置,一种简单的方法是移动逻辑坐标系原点去和设备坐标系原点重合(注意:不管设备坐标系原点如何变化,设备坐标(0,0)始终在客户区左上角),移动重合后就很容易找到逻辑坐标点(0,0)在客户区的位置。举例如下:
设客户区宽度为cxClient , 高度为cyClient ,如果我们使用函数SetViewportOrgEx(hdc , cxClient / 2 , cyClient / y , NULL) ,把逻辑坐标原点(此时为(0 ,0))平移到设备坐标原点(cxClient / 2 , cyClient / 2),容易得出逻辑坐标(0,0)在客户区中心(cxClient / 2 , cyClient / 2);若使用函数SetWindowOrgEx(hdc , -cxClient / 2 , -cyClient / 2 , NULL),此时逻辑坐标原点变成(-cxClient / 2 , -cyClient / 2),我们平移这个点到设备坐标原点(0,0),容易得出此时逻辑坐标点(0,0)被平移到了客户区中心(cxClient , cyClient);再若一起使用SetVie