Windows 程序设计 SetWindowExtEx SetViewportExtEx SetWindowOrgEx SetViewportOrgEx

          SetWindowExtEx (hdc, x, y, NULL) ;  表示设置窗口范围

          SetViewportExtEx (hdc, x, y, NULL) ; 设置视口范围 

          SetWindowOrgEx (hdc, x,y , NULL) ; 设置窗口坐标原点

          SetViewportOrgEx (hdc, x, y , NULL) ; 设置视口坐标原点



  SetMapMode(hdc, MM_ISOTROPIC);
 SetWindowExtEx(hdc,10,10,NULL);   表示逻辑单位范围为10
 SetViewportExtEx(hdc, 100, 100, NULL); 表示 100像素为一个单位

 TextOut(hdc,3,3,TEXT("123456"),6); 如果是MM_TEXT 那么显示是在 30,30 .为什么?上面2行代码就是说10个逻辑单位代表100个像素点,那么你就可以算出来啦

          TextOut(hdc,10,10,TEXT("123456"),6); 显示最大范围 那么就在 100,100的位置显示



  SetMapMode(hdc, MM_ISOTROPIC);
 SetWindowExtEx(hdc,10,5,NULL);       如果不同,取最小值
 SetViewportExtEx(hdc, 100, 50, NULL);如果不同,取最小值
 TextOut(hdc,10,10,TEXT("123456"),6); 那么在100,100的位置显示


设置窗口逻辑坐标原点

 SetWindowOrgEx(hdc,100,100,NULL); // 设置窗口逻辑坐标原点的位置,就是说 你如果输出坐标是100,100那么显示在不设置窗口坐标时,0,0的位置
 TextOut(hdc,200,200,TEXT("123456"),6); 这行代码显示在100,100的位置。

设置视口的坐标原点

 SetViewportOrgEx(hdc,100,100,NULL); 把视口的窗口原点0,0的位置,移到了100,100的位置
 TextOut(hdc,0,0,TEXT("123456"),6);  那么这句话显示在 100,100的位置


如果组合起来的话,拆开分析,下面看个例子

 SetWindowOrgEx(hdc, 200 ,200, NULL);// 200,200 表示窗口原点的位置
 SetViewportOrgEx(hdc,500,500,NULL);// 窗口原点移动到了500,500的位置


 TextOut(hdc,0,0,TEXT("123456"),6);// 那么它显示在什么位置?


 SetWindowOrgEx(hdc, 0 ,0, NULL);// 还原
 SetViewportOrgEx(hdc,0,0,NULL);// 


 TextOut(hdc,300,300,TEXT("1234567"),7);// 和上面显示在同一个位置,我还多加了一个数字 7

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值