当前课程知识点:VC++面向对象与可视化程序设计(上):Windows编程基础 >  第1章 Windows应用程序基础 >  1-3 关于API >  1-3-2

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

1-3-2在线视频

1-3-2

下一节:1-4-1

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

1-3-2课程教案、知识点、字幕

刚才我们学习了Windows编程过程中的几个主要概念

其中很重要的一个概念是消息

那我们现在重点来介绍几个常用的消息

这个看到的消息是WM作为前缀的

那这个消息就是window消息

Window Message 是吧 窗口消息

其实这个消息很容易识别

大家看到这里LBUTTONDOWN

就是LeftButtonDown 就是鼠标左键消息

它包含了长参数和字参数 lParam跟WParam

我们先看lParam 它的低字节包含了x坐标

就是鼠标的光标点的位置的x坐标

高字节包含了鼠标的y坐标

那么x、y坐标都可以用LOWORD和HIWORD来求出来

它的字参数包含了一个整数值

用来标识鼠标键的按下状态

那么按下状态的话我们通过这个switch-case构架来使用它

比如说这里给出了几个按下状态

MK_LBUTTON MK_MBUTTON RBUTTON 以及SHIFT CONTROL

这个大家都很熟悉

那比如说我们这里看到的WM_LBUTTON case

那么也就是说当按下鼠标左键的时候

我们经常按键会跟shift、ctrl混用

那么这时候我们再判断一下

比如说字参数跟这个shift键相遇

那么也就是说如果按下了shift键

那么这个if的条件就为真

那么这时候大家看是在case LBUTTONDOWN里头的条件判断

也就是说当按下鼠标左键的同时

如果按下了shift键

那么下面这里的…,就说明它进行了相应的操作

所以这里是鼠标左键跟shift键的组合

所以这时候 这里面

就用字参数跟shift键的按下状态进行判断

那么大家刚才看到的是鼠标左键按下的

实际上你既然按下了键 就要放开键

所以LBUTTONUP放开鼠标的左键

以及RBUTTONUP、RBUTTONDOWN

这个是LBUTTONDBLCLK DBLCLK就是Double Click

那么这个就是鼠标左键双击

Right就是鼠标右键双击

还有一个大家知道就是鼠标你不一定按下键

但是鼠标经常在窗口的显示区要移动

从一个位置移动到另一个位置

那么这时候也会产生鼠标的消息

那么就是MOUSEMOVE 就是鼠标移动等等吧

下面我们再介绍一个非系统键

也是WM为前缀 这是窗口消息 KEYDOWN

按下一个非系统键产生的消息

这里一说非系统键

那肯定大家就要想到有没有系统键

你既然有非系统键 那就应该有系统键这个概念

系统键是什么

是指实现系统操作的组合键

比如说Alt键与某个功能键的组合来实现系统菜单操作等等

非系统键就是不与Alt联用的那些键

那么关于系统键、非系统键更详细的内容

这里给出了网址 大家可以参考一下

这个系统键、非系统键

我们仍然可以编写这些按键消息的响应

那么现在对于非系统键来说

它的字参数是包含了键的虚拟码

那什么是“虚拟码”?又多出一个概念

虚拟码是用于标识按下或释放的键

实际上虚拟码代表的是键

lParam是记录了按键的重复次数、扫描码、转移代码、先前键的状态等消息

先前键的状态比如先前是按下的还是放开的

关于虚拟键码详细内容

这里已经给出了MSDN介绍内容的相关网址

大家感兴趣的可以在这个网站上去看一下

关于这些概念不作为我们的重点内容

是只要大家了解就可以

那么既然有KEYDOWN就有KEYUP

就是放开非系统键时产生的消息

那刚才谈到了虚拟码

虚拟码是代表了按下的键

它也有一个标识

大家注意到 这个标识的前缀都是VK 就是Visual Key

就是虚拟键的英文缩写

那么这时候虚拟键LBUTTON就是按下虚拟鼠标左键的虚拟标识键

那么比如说键盘上有shift、ctrl、esc、enter等等

大家看到这些虚拟键 它的特点是什么

就是说如果这些键不设置为虚拟键

大家从键盘上如果单击这些键的操作的时候

不像选择ABCD键或者0-9的字符一样

会在编辑文档或者文档编辑器里面

能够显示相应的内容

而它这些键只是完成相应的操作

那么对于完成相应操作的键

当你需要显示这个键的时候

是无法从键盘上通过敲打这个键

使得相关的编辑器里能够显示这个键的内容

它只显示一个操作

所以当你需要对这个键进行识别的时候

你不能够像识别

如果碰到它是否是字符是A 是否字符是B

那么简单把A和B放在上面

所以这时候它是通过虚拟键的标识来代表这个键

那么这个应该在编程过程中

尤其对一些键的操作的识别上用得比较多

大家也不要去背这些东西

这些关键词加个VK的前缀就OK啦

还有一个是按下一个非系统键时产生的消息是字符信息CHAR

那么字符信息的话

ABCD是字符 0-9也是字符

这个就不细说了

很重要的一个消息CREATE

这个消息是由CREATEWINDOW这个函数发出的消息

消息里面wParam没有定义

lParam里面它包含了一个CREATESTRUCT数据结构的指针

关于CREATESTRUCT 这是一个很重要的数据结构

我们陆续后面会介绍到

还有CLOSE消息 这个就是关闭窗口时候的消息

那字参数和长字参数它都没有定义

DESTROY消息是DestroyWindow函数关闭Window

销毁Window时候发出的消息

同样的话这个字参数和长字参数都没有使用

QUIT就是退出应用程序了

它是由PostQuitMessage这个函数发出的

有一个非常重要的消息是PAINT

PAINT消息是在屏幕刷新时要调用的消息

所以这个消息的内容比较多

我这里给出了相关的网址

这个PAINT消息刚才说了

是屏幕刷新时产生这个消息

什么时候屏幕上刷新

当用户区改变的时候、移动的时候

或者窗口大小改变

你窗口如果大小改变 给它变小了

原来窗口覆盖的内容要重新显示出来

那么显示这个过程就是刷新

那么比如说大家在移动水平或垂直滚动条的时候

文档内容会随着滚动条的移动发生变化

那么实际上就是显示的内容发生了变化

只要显示的内容发生了变化

就是发生了屏幕的刷新

它不刷新的话怎么产生变化

还有你操作一个菜单

点一个菜单比如说文件菜单

它会弹出来一个菜单

下面有一系列的菜单项

当你选择了菜单项之后那个菜单是关闭掉的

那么关闭掉后 原来打开这个菜单时候覆盖的部分

当菜单关掉的时候被覆盖的部分是要恢复的

这个也是叫做屏幕的刷新

还有Windows系统清除对话框

比如弹出一个打印对话框

那么你进行了打印的相应的操作的时候

这个打印的对话框是要关闭的

那么也就是说清除对话框对象

那么对话框

这个打印对话框覆盖的部分是要恢复的

那么这些过程都要产生PAINT消息进行屏幕的刷新

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章源代码

--外部链接

-第一次作业

--第一次作业--作业

-第二次作业

--第二次作业--作业

-第三次作业

--第三次作业--作业

1-3-2笔记与讨论

也许你还感兴趣的课程:

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