MFC GDI映射模式

    dc.Rectangle(0,0,100,50);
    使用Rectangle函数画图的时候,不用告诉GDI画一个100像素宽,50像素高的矩形,而是告诉它画一个100单位宽,50单位高的矩形

    默认映射模式是:MM_TEXT

    //通过SetMapMode()函数改变映射模式
    dc.SetMapMode(MM_LOMETRIC);

     前面的几种映射模式,没什么说的,主要是后面两个自定义的映射模式复杂一点。

     SetWindowExe设定窗口尺寸,SetViewportExt设定视口尺寸。  
      窗口尺寸以逻辑单位计算,视口尺寸以物理单位计算。  
          CRect   rectClient;            
          GetClientRect(rectClient);//取窗口物理尺寸(单位:像素)  
          pDC->SetMapMode(MM_ANISOTROPIC);  
          pDC->SetWindowExt(1000,   1000);//窗口逻辑大小:1000*1000,  
          pDC->SetViewportExt(rectClient.right,   -rectClient.bottom);//改变Y坐标方向--viewport使用物理大小  
          pDC->SetViewportOrgEX(rectClient.right   /   2,   rectClient.bottom   /   2);//设置窗口中心点为坐标系原点--Viewport使用物理大小  
         
          pDC->Ellipse(CRect(-500,   -500,   500,   500));//以逻辑单位画图---普通GDI   API使用逻辑单位  
   
  默认方式下,物理/逻辑值是1:1关系,可换用。但使用SetWindowExt/SetViewportExt后两者不可混用。


   注意:   

    SetWindowOrgEx();//移动窗口的原点
    SetViewportOrgEx();//移动视窗口的原点

     正常情况下,二者用其一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值