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技术内幕讲的很详细,惭愧!我正在看这本书,看来书看的不行,准备在看看书本,理解了再到这里总结.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值