小弟刚学VC不仅,能否通俗介绍一下逻辑坐标和设备坐标。
谢谢!!!

解决方案 »

  1.   

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

  2.   


    那请问:
    SetWindowOrg,SetViewOrg,SetViewportExt,SetWindowExt
    有什么区别?
      

  3.   

    在获取用户区时:GetClientRect(rectClient)时
    以及定义一个CRECT(100,100,200,200)对象时用的Point坐标是
    相对设备坐标的吗?
      

  4.   

    这个你查查msdn会很清楚
    不过我给你个忠告,最好不要使用这些改变坐标模式的函数,因为这个东西会对其他需要绘图的程序产生严重的影响,程序维护会困难。