tag 标签: view

相关帖子
相关博文
  • 热度 17
    2012-11-23 11:34
    1037 次阅读|
    0 个评论
    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)。它们执行的是相反操作。              
相关资源