当前课程知识点:VC++面向对象与可视化程序设计(上):Windows编程基础 > 第2章 Windows的图形设备接口及Windows绘图 > 02-4 例题和作业 > 02-4-2 例题2
返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频课程列表
返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频列表
设置映像与使用映像模式
程序的初始阶段按照我们缺省的TEXT模式绘图
当用户单击鼠标以改变映像模式
比如说单击鼠标的左键
产生的LBUTTONDOWN这个消息
通知应用程序设置映像模式为ISOTROPIC
然后调用这个InvalidateRect函数来刷新用户区
在用户单击鼠标右键时
产生了这个RBUTTONDOWN的消息
应用程序将映像模式设置成ANSIOTROPIC
那么同时刷新用户区
那么这个程序
我们怎么来完成呢?
我们下面通过我们应用程序的编译环境
Visual Studio来这个环境来给大家一块儿看一下
这个应用程序是怎么编写的
那步骤跟前面一样
我们应用程序的工程文件的生成过程
我们这里就不细说了
我们假设应用程序工程文件已经生成
我们就开始介绍WndProc函数
因为WinMain函数
WinMain函数跟前面是一样的
大家看到写成映射模式
映射模式跟映像模式实际上只是翻译的不同
在这里是一个概念
可能在教材的别的地方也可以看到写的是映射
实际上映射大家理解为就是映像
它就是翻译的不同
实际上就是一个概念
那WinMain的话, 跟前面是一样的
我就不多说了
我们重点介绍WndProc
同样我们要创建设备环境
然后要建立PAINTSTRUCT对象
我们这里定义了两支画刷
hB1、hB2
那么这时候
窗口里面这个Window函数
Window里面传过来一个消息
从这个WndProc里面
从这个应用程序的窗口里面传过来message消息
这个message消息如果是鼠标的左键LBUTTONDOWN
请大家注意我们这个应用程序里面
代码的注释写得非常详细
大家通过代码的注释
也可以很清楚地学习代码的结构
那么也就是说在这里如果遇到鼠标左键消息的时候
我们将映像模式或者说映射模式
根据我们题目的要求给它设置为ISOTROPIC
然后刷新用户区
如果是鼠标左键的情况下
然后, 我们把映像模式定义为ANISOTROPIC
然后刷新用户区
不管是鼠标左键还是鼠标右键
我们仅是定义了这个映像模式
最后我们都要通过画图PAINT
然后PAINT里面我们仍然是创建了HDC
然后把前面设置的映像模式选入
来选入到当前的DC里面去
那么也就是说你如果按的是鼠标左键
就把这个映像模式选入到PAINT里面的SetMapMode里头去
同理右键就选这个映像模式
ANISOTROPIC选入当前的设备环境
这个映像模式
设备环境里的映像模式
然后我们设置窗口的大小
跟视口区域的大小
并设置原点
在这个时候我们把系统定义的白色画刷和黑色画刷
分别选入当前的设备环境
所以给它赋值给hB1和hB2
然后选入设备环境了
选入设备环境后画了一个圆角矩形
然后再把hB2这个画刷
选入设备环境
画了一个填充的椭圆
然后我们绘图工作完成后
要把这个句柄删除 释放掉
所以用EndPaint
同时把画刷 ,选入设备环境的画刷也删除
这个DESTROY跟这个default跟前面一样
咱就不细说了
我们生成一下应用程序
系统提示是成功
那么我们运行一下
好!这个程序大家看到初始的界面是这样的
然后我单击鼠标左键和右键
效果呢?是不一样的
效果不一样是因为它这个不同的映射模式
它这个屏幕的比例发生了变化
就是尺寸的比例发生了变化
这个大家可以课后自己下载应用程序
去运行
去分析
去体会
好!这个例子我们就介绍到这儿
-讨论实录
--0-0
-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
-02-1 Windows图形设备接口
-02-2 绘图工具与颜色
-02-3 常用绘图函数
-02-4 例题和作业
-第2章源代码
--外部链接
--外部链接
-3-1 设置文本的设备环境
-3-2 文本的输出过程
-3-3 例题和作业
-第3章源代码
--外部链接
-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-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章源代码
--外部链接
-第一次作业
--第一次作业--作业
-第二次作业
--第二次作业--作业
-第三次作业
--第三次作业--作业