当前课程知识点:VC++面向对象与可视化程序设计(上):Windows编程基础 >  第2章 Windows的图形设备接口及Windows绘图 >  02-1 Windows图形设备接口 >  02-1-4 映像模式

返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频课程列表

02-1-4 映像模式在线视频

02-1-4 映像模式

下一节:02-2-1 画笔

返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频列表

02-1-4 映像模式课程教案、知识点、字幕

我们再来了解一个概念叫做映像模式

映像模式定义了将逻辑单位转化为设备的度量单位

以及设备的x方向和y方向

你们常规概念中的直角坐标的原点是在左下角

而屏幕,它的坐标原点是在左上角

y的方向是向下的

程序员可在一个统一的逻辑坐标系中操作

有了这个映像模式后

而不需要考虑输出设备的坐标系的情况

所以了解了映像模式以后

实际上也是为了解决设备无关性的问题

谈到映像模式我们要了解“窗口”和“视口”的概念

“窗口”是对应逻辑坐标系上程序员设定的区域

而“视口”是对应实际输出设备上程序员设定的区域

那,窗口和视口之间,他们是如何映射的呢?

我们先看这个坐标系统

我们说当我们进行绘图的时候

一定要考虑坐标系统的问题

坐标系统分为逻辑坐标系统和设备坐标系统

而设备坐标系统牵涉到

屏幕坐标系统窗口坐标系统和用户区的坐标系统

这里我列出了一张表

这表里面,给出了不同的映像模式,以及它映射的效果

比如说第一个

它是将按照窗口和视口的坐标比例进行映射的

第二个,就是ISOTROPIC

这个,也是系统确定的

x轴和y轴的单位比例一直是1:1

这个ISOTROPIC是将窗口中的对称图形映射到视口时

仍然是对称图形

那么实际上

有时候窗口变化过程中

由于它的映射模式变化后

图形的比例是发生变化的

典型的一个就是大家在家里看电视的时候

4:3的显示跟16:9的显示

它的最后看到的图像,可能就是不一样的

关于这些映射模式的问题

我们在教材里面,讲的比较详细了

那么这张表,我就不在这里一一的对应的给大家说一遍了

那么更详细的内容

大家可以参见微软的MSDN的内容

应用程序可获取设备环境的当前的映像模式

并根据需要,设置映像模式

设置设备环境的映像模式,用SetMapMode

就是设置当前的映像模式

那这些参数

这个就是当前设备环境句柄hdc

也就是说在哪一个设备环境里面来设置它的映像模式

既然我们可以设置映像模式

那同样,我们也可以获取当前设备环境的映像模式

所以这个是GetMapMode

就是获取这个hdc所指向的设备环境

这个设备环境的映像模式

我们给它设为nMapMode

这个,我们后面会经常用到

就是说我们在画图过程中

我们会定义屏幕的某一部分

叫做用户自定义区域,所以这样的话

就牵涉到了一个窗口区域的定义

我们使用这个SetWindowExtEx这个函数

这里有当前的设备环境句柄

也就是说我在哪一个设备环境里面设置我的用户区

这个参数里面高和宽

它是以逻辑单位表示的窗口区域的高度和宽度

那同样,我们也要定义了视口区域

视口区域,是由SetViewportExtEx函数来完成

它同样也是在当前的hdc下面进行设置

那么请大家注意一下这里

前面它窗口定义

它是以逻辑单位表示窗口的区域的高度和宽度

而视口区域

是以物理设备单位表示的区域的高度和宽度

所以一个是逻辑单位一个是物理设备单位

这两个是不一样的,而这个视口定义

只有在这两个映射模式MM_ANISOTROPIC和MM_ISOTROPIC

只有这两个映像模式下面,它才有意义

视口的原点和窗口的原点它缺省的都是(0,0)

那么这个SetWindowOrgEx,就是设置窗口的原点

因为有时候是需要对坐标系进行平移

所以这个函数的参数都写的

都在这里的注释上都写出来了所以我就不细说了

VC++面向对象与可视化程序设计(上):Windows编程基础课程列表:

第0章 课前讨论

-讨论实录

--0-0

第1章 Windows应用程序基础

-1-1 Windows应用程序的特点

--1-1

-1-2 可视化编程

--1-2

-1-3 关于API

--1-3-1

--1-3-2

-1-4 Windows应用程序组成及编程步骤

--1-4-1

--1-4-2

-1-5 应用程序举例

--1-5-1

--1-5-2

--1-5-3

第2章 Windows的图形设备接口及Windows绘图

-02-1 Windows图形设备接口

--02-1-1 GDI

--02-1-2 图形刷新

--02-1-3 获得设备环境方法

--02-1-4 映像模式

-02-2 绘图工具与颜色

--02-2-1 画笔

--02-2-2 画刷和颜色

-02-3 常用绘图函数

--02-3 常用绘图函数

-02-4 例题和作业

--02-4-1 例题1

--02-4-2 例题2

--02-4-3 例题3

--02-4-4 例题4

--02-4-5 作业

-第2章源代码

--外部链接

--外部链接

第3章 文本与字体

-3-1 设置文本的设备环境

--3-1 设置文本的设备环境

-3-2 文本的输出过程

--3-2 文本的输出过程

-3-3 例题和作业

--3-3-1 (例3-1)

--3-3-2 (例3-2)

--3-3-3 (例3-3)

--3-3-4 (例3-4)

--3-3-5 (作业)

-第3章源代码

--外部链接

第4章 Windows应用程序中的键盘与鼠标

-4-1 Windows 应用程序中的键盘与鼠标

--4-1

-4-2 键盘的操作应用举例

--4-2

-4-3 例题

--4-3

-4-3 鼠标在应用程序中的应用

--4-3

-4-4 例题4-4

--4-4

-第4章源代码

--外部链接

第5章 资源在Windows编程中的应用

-5-1 菜单和加速键资源及其应用

--5-1

-5-1(例1)

--5-1(例1)

-5-2 位图资源及其应用

--5-2

-5-3 对话框资源及其应用

--5-3-1

--5-3-2

-5-4 图标资源的应用

--5-4

-第5章源代码

--外部链接

-第一次作业

--第一次作业--作业

-第二次作业

--第二次作业--作业

-第三次作业

--第三次作业--作业

02-1-4 映像模式笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。