VC的逻辑坐标和设备坐标

 以前看了一点windows程序设计还有VC一点东西,对windows坐标系好像就是有一点迷惑.现在开始系统的学习MFC,又涉及到了这个问题,确实有些不解,于是搜到一些资料:

  所谓设备坐标与逻辑坐标只是相对的概念。  
  比如点pt(1000,1000),如果你认为他是  
  设备坐标,那么经过下变换,他就变成逻辑  
  坐标:   
  dc.DPtoLP(&pt);  
  如果你认为他是  
  逻辑坐标,那么经过下变换,他就变成设备坐标:  
  dc.DPtoLP(&pt);  
   
  是设备坐标还是逻辑坐标,与DC的影射模式(MapMode)  
  无关,任何影射模式都有设备坐标与逻辑坐标。其中,设备坐标  
  是统一的的,即都是指设备象素坐标。  
   
  1.首先、设备坐标指的是物理设备以象素点为单位。  
      逻辑坐标除MM_TEXT外均指物理尺寸,如mm,inch等  
  2.数字本身没有逻辑与设备之分  
  CRect   r=CRect(0,0,50,30);    
  CSize   size(100,80);                  
  CPoint   point(50,60);              
   
  孤立的看待这些点或坐标是没有意义的,他是逻辑还是设备坐标  
  取决于编程着的主观愿望,和上下文的意义。  
  3.DPtoLP指将象素点数坐标转换为在相应设备上该数目的象素点  
  在该设备上实际物理长度(尺寸)坐标。  
  LPtoDP指将相应设备实际物理长度(尺寸)坐标转换为在相应设备  
  上该物理长度(尺寸)所占用的象素点书目坐标

  一般dc所接受的参数是逻辑坐标,窗口函数都是接受设备坐标。

在使用自己产生的dc之前要先调用OnPrepareDC,确保dc的原点与逻辑坐标原点重合,因为dc的函数都是使用的逻辑坐标

还有网友说VC技术内幕讲的很详细,惭愧!我正在看这本书,看来书看的不行,准备在看看书本,理解了再到这里总结.

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页