关于SetWindowOrgEx与SetViewportOrgEx的用法

这两个API都是设置逻辑坐标原点的,但是两个的效果和作用是不一样的。
SetWindowOrgEx是将逻辑坐标原点向负方向移动。比如:dc.SetWindowOrg(50,100);假设初始状态下逻辑坐标原点是左上角。这句的作用是将原点向左移50个单位,向上移100个单位(用默认正方向),此时原点就移出了屏幕了。也就是左上角(设备坐标原点)现在的逻辑坐标是(50,100).

setViewportOrgEx也是设逻辑坐标原点的,它的作用是沿正方向移动坐标原点。
比如dc.SetViewportOrg(50,100);它的作用是将原点向右移50个单位,向下移100个单位。此时左上角(设备坐标原点)的逻辑坐标就成了(-50,-100)

你可以用下面语句试验:
dc.SetWindowOrg(50,100);
dc.TextOutW00,_T("dlfjkd"),13);
============
此时应该显示不出来。因为(0,0)点在屏幕外。

dc.SetViewportOrg(50,100);
dc.TextOutW(0,0,_T("dlfjkd"),6);
================
此时应该显示在向右50个单位,向下100个单位处。

dc.SetWindowOrg(50,100);
dc.SetViewportOrg(50,100);
dc.TextOutW(0,0,_T("dlfjkd"),6);
=============
此时显示在左上角,因为dc.SetWindowOrg(50,100);和dc.SetViewportOrg(50,100);相互抵消,所以逻辑坐标原点回到了默认位置。

  • 2
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值