SetViewPortOrgEx与SetWindowOrgEx

SetViewPortOrgEx与SetWindowOrgEx

GDI绘图中调整窗口与视口的坐标原点,相当于定位笛卡尔逻辑坐标系。

先说一下自己对窗口与视口的理解:

窗口(Window),是指整个程序界面,比如一个带滚动条IE浏览器中,页面内容很长,所有内容构成窗口;视口(Viewport),指的是当前屏幕看到的那一块,即滚动条所处的可见位置。

视口,与屏幕设备相关,用设备坐标;窗口,与设备无关,用逻辑坐标。TextOut等大部分GDI函数都用逻辑坐标。要讲的两个函数,作用即是两坐标的映射调整。

引用Charlez的《Windows程序设计》一下,有点晕:

如果将视口原点改变为(xViewOrg,yViewOrg),则逻辑点(0.0)就会映像为设备点(xViewOrg,yViewOrg)。如果将窗口原点改变为(xWinOrg,yWinOrg),则逻辑点(xWinOrg,yWinOrg)将会映像为设备点(0,0),即左上角。不管对窗口和视端口原点作什么改变,设备点(0,0)始终是显示区域的左上角。

这里,Set不是“设置”,而是“调整”。初始时,视口与窗口原点重合,都在左上角。都是“被调整主体”上移。

SetViewPortOrgEx(x,y) ——调整视口,令视口原点调整为现在的(x,y)

SetWindowOrgEx(x,y)   ——调整窗口,令窗口原点调整为现在的(x,y)

具体过程如文末图所示。

我们知道,原始坐标如左图所示,向下向右为正,如果想要变为右图所示,应如何调整?视口上调了,SetViewPortOrgEx(x,y);或者说窗口下调了,SetWindowOrgEx(-x,-y)。它们执行的是相反操作。


         

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值