我想弄清几个概念,原点在哪?:逻辑坐标
设备坐标
屏幕坐标
客户坐标那位能告诉一下我,我都糊涂了
谢谢!

解决方案 »

  1.   

    设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。  逻辑坐标(Logical Coordinate)是系统用作记录的坐标。在缺省的模式(MM_TEXT)下,逻辑坐标的方向和单位与设备坐标的方向和单位相同,也是以像素为单位来表示的,X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。逻辑坐标和设备坐标即使在缺省模式下其数值也未必一致,除了在以下两种情况下:  1. 窗口为非滚动窗口  2. 窗口为滚动窗口,但垂直滚动条位于滚动边框的最上端,水平滚动条位于最左端,但如果移动了滚动条这两种坐标就不一致了。  在VC中鼠标坐标的坐标位置用设备坐标表示,但所有GDI绘图都用逻  坐标表示,所以用鼠标绘图时,那么必须将设备坐标转换为逻辑坐标,可以使用CDC 函数DptoLP()将设备坐标转化为逻辑坐标,同样可以用LptoDP()将逻辑坐标转化为设备坐标。
      

  2.   

    屏幕坐标是以屏幕左上角为坐标原点
    客户坐标是以客户区坐上角为坐标原点
    ScreenToClient(&rect);//将屏幕坐标转化为客户坐标
    ClientToScreen(&rect);//将客户坐标转化为屏幕坐标