luoxingshun 2014-06-15 01:49
浏览 819

大家好,请问SetViewportOrgEx和SetWindowOrgEx连在一起用的效果

大家好,我在阅读《windows 程序设计》这本书中,作者写道:
1、假设显示区域为cxClient个图素宽和cyClient个图素高。如果想将逻辑点(0,0)定义为显示 区域的中心,可进行如下呼叫:
SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL) ;
SetViewportOrgEx的参数总是使用设备单位。现在,逻辑点(0,0)将映像为设备点(cxClient/2,cyClient/2)。
2、用下面的SetWindowOrgEx叙述可以获得与上面使用SetViewportOrgEx同样的效果:
SetWindowOrgEx (hdc, -cxClient / 2, -cyClient / 2, NULL) ;
读到这里,我都能明白,现在作者又写了一句话,这句话我看不明白了,
3、您不会将这两个函数一起用,除非您知道这么做的结果:
SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL) ;
SetWindowOrgEx (hdc, -cxClient / 2, -cyClient / 2, NULL) ;
这意味着逻辑点(-cxClient/2,-cyClient/2)将映像为设备点(cxClient/2, cyClient/2)

现在请问,为什么第3:将SetViewportOrgEx和SetWindowOrgEx连在一起用,会出现逻辑点(-cxClient/2,-cyClient/2)将映像为设备点(cxClient/2, cyClient/2)这种情况,按照作者第1和第2点来看,
SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL) ;这行代码是逻辑点(0,0)将映像为设备点(cxClient/2,cyClient/2)。然后:
SetWindowOrgEx (hdc, -cxClient / 2, -cyClient / 2, NULL) ;这行代码是将逻辑点(-cxClient / 2,-cyClient / 2)映像为设备点(0,0),
可是SetViewportOrgEx这行代码不是已经将逻辑点(-cxClient / 2,-cyClient / 2)成为了设备点(0,0)了吗?

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
    • ¥15 让node服务器有自动加载文件的功能
    • ¥15 jmeter脚本回放有的是对的有的是错的