彻底理解窗口,视口,以及SDI各种映射模式

本文详细探讨了Windows程序设计中的SDI窗口、视口映射模式,澄清了SetWindowOrgEx和SetViewPortOrgEx函数的作用。强调了坐标系统的不变性,解释了不同映射模式下坐标轴方向的变化,并通过实例分析了数字时钟程序中坐标变换的应用。
摘要由CSDN通过智能技术生成

最近在学习《windows程序设计》,在数字时钟那里卡住了,就是这个SDI的映射模式,让我纠结了半个多月!!!看了网上的各种博客,帖子,发现都是各种复制粘贴,看得云里雾里的,经过自己的各种调试,终于理解了!或许,我理解的也不是十分透彻,也许有不足设置错误,希望大家批评指正!本人文笔十分差劲,还请大家多多包涵!

1.首先,不要被SetWindowOrgEx ,SetViewPortOrgEx,这两个函数所误解 ,从字面上看,好像是设置坐标原点,其实不然,这两个函数设置的是一种映射关系,设置的是两个基准点,也就是窗口基准点映射到视口基准点。

2.关于坐标系,以及坐标原点,设备坐标系的x轴永远指向右,y永远指向下,坐标原点永远(0,0),无论你怎样设置,这三要素永远不变!逻辑坐标系,默认x指向右,y指向下,

坐标原点(0,0),其中坐标原点(0,0)永远不变,不管你什么模式,而坐标系的方向虽映射模式变化,MM_TEX模式下,逻辑坐标x,y轴方向以及原点不可改变,MM_ISOTROPIC模式下,由SetWindowExtEx(hdc, wx,wy, NULL) ,SetViewportExtEx(hdc, vx, vy NULL)两个函数决定,若vx/wx为负数,则逻辑x轴向左,若vy/wy 为负数࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值