`
wo_deqing
  • 浏览: 60444 次
文章分类
社区版块
存档分类
最新评论

vc++消息映射之消息种类

 
阅读更多
在WINDOWS中应用程式有三种消息:窗口消息,命令消息,控件消息。

1、窗口消息

一般和窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或从窗口发到系统。发送函数SendMessage()或PostMessage()。包涵的三个变量解释如下:
Message————-WM_XXX
wParam—————定义的命令
lParam—————-定义的命令
WM_XXX能够是许多窗口消息之一,如下列消息:
WM_CREAT:告诉窗口初始化自己。
WM_PAINT: 告诉窗口绘制自己。
WM_MOUSEMOVE:告诉窗口鼠标移经他。
当然更有好多,看MSDN吧~~~~

2 、命令消息

命令消息通常和处理用户请求有关,当用户单击一个菜单或工具栏时,命令消息就产生了。并发送到能处理该消息的类或函数(如装载文本,保存选项等)。

当用SendMessage(),PostMessage()发送命令消息时,变量Message,wParam,lParam的格式如下:
Message————–WM_COMMAND
wParam—————-0或CommandID
IParam—————–0
CommandID要么时选中的菜单项的ID,要么是被单击的工具栏按钮ID,主意CommandID不能大于一个字长,系统就只用零来填写高位。某些控件也发送WM_COMMAND消息,区别两种消息的唯一的方法是看lParam是否为NULL。

3、控件通知消息

通常控件通知消息是有重要的事情发生,有控件窗口发送到父窗口的意种消息。如打开一个组合框。控件通知父窗口为进一步控制子窗口提供了机会。例如,打开一个组合框,父窗口能够用组合框开始创建时得不到的消息填充他。

控件通知经历了一个演变过程。因而SendMessage()的变量Message,lParam,wParam有三种格式如下:
(1) 第一种控件通知消息格式
第一种控件通知消息格式只能时窗口消息的子集。
Message————–WM_XXX
wParam—————-定义的命令
IParam—————–定义的命令

WM_XXX能够是以下消息中的任意一种:
WM_PARENTNOTIFY :表明一个控件窗口要么被建立或销毁,要么鼠标已单击了该窗口。
WM_CTLCOLOR, WM_DRAWiTEM, WM_MEASUREiTEM, WM_DELETEITEM,WM_CHARTOiTEM, WM_COMPAREITEM都是发往父窗口的消息,用来绘制自身控件的窗口。
WM_HSCROLL, WM_VSCROLL由滚动条发送,通知滚动窗口的父窗口。

(2) 第二中控件通知消息的格式
Message————–WM_COMMAND
wParam—————-XN_XXX或控件ID
IParam—————–窗口句柄
IParam用来区分命令传送消息还是控件(前边我们说过了吧,呵)。
XN_XXX 的值因发送通知的控件的不同而不同,例如当XN_XXX值为EN_CHANGE时,告诉父窗口显示在文本编辑框中的文本已发生了变化。

(3) 第三重控件通知消息格式
Message————–WM_NOTIFY
wParam—————-控件ID
IParam—————–指向NMHDR的指针

IParam指向一种结构,该结构包括有关该通知控件的任何内容,而不受空间和类型的限制,该架构就是NMHDR。
typedef struct tagNMHDR {
HWND hwnd;
UNIT idFrom;
UNIT code;
} NMHDR;
NMHDR代表通知消息头,为什么要这个头?因为某些控件用NMHDR作为头发送一个更大的结构消息,即使那些不知道更大结构内容的函数还是能处理通知头。

分享到:
评论

相关推荐

    VC++之MFC类库中文手册_目录保护_vc++之mfc_mfc类_VC++之MFC类库中文手册_MFC类库_

    该MFC参考含盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容。参考中“类层次结构图”是为了方便查找某个类... · 结构、风格、回调函数和消息映射 详细解说MFC库中的各个结构、风格、回调函数和消息映射。

    VC++实现的自组织映射SOM方法图像分类聚类算法源代码

    VC++实现的自组织映射SOM方法图像分类聚类算法源代码

    vc++ 应用源码包_3

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    vc++ 应用源码包_1

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    吕鑫:《VC++就业培训宝典之MFC视频教程》第二章 第五节 初步学习MFC软件开发模式

    1、通过MFC软件工程开发一个带有增删改查的数据表格软件; 2、初步认识MFC消息映射机制的应用; 3、初步了解MFC专用数据类型的种类和使用方法;

    VC++2010权威开发指南+源代码.part2

     3.2.1 菜单消息的分类 129  3.2.2 菜单消息的传输路由 129  3.3 动态菜单操作 131  3.3.1 添加菜单 131  3.3.2 插入菜单 133  3.3.3 删除菜单 135  3.3.4 插入菜单的命令响应 136  3.3.5 修改菜单 137  ...

    VC++集合类,详细例子。

    MFC 集合类可以按形态和设计方案来分类。MFC 为三种类型的集合形态提供了类: 列表 数组 映射 MFC 还提供三种类型的设计方案: 不使用 C++ 模板。 使用由简单元素组成的基于 C++ 模板的集合。 使用由类型...

    VC++ 6.0 MFC类库参考手册(全)

    MFC 库按照应用功能划分为根类,MFC 应用结构类,窗口、对话和控件类,绘画和打印类,简单的数据类型类 ,数组 、列表和映射类 ,文件和数据库类,Internet 和网络类,OLE类,调试和异常类等类。而其中的每一分类都...

    vc++数字图像识别技术经典案例 光盘源码

    5.3.2 Torus自同构映射 224 5.3.3 人眼视觉频率响应及DCT变换系数的选取 224 5.3.4 水印算法 226 5.4 基于扩频通信的水印算法 228 5.4.1 扩频通信原理 228 5.4.2 扩频通信在数字水印中的利用 229 5.4.3 ...

    vc++ 应用源码包_5

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    vc++ 应用源码包_2

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    vc++ 应用源码包_6

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    vc++ 开发实例源码包

    多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树...

    VC++2010权威开发指南+源代码

     3.2.1 菜单消息的分类 129  3.2.2 菜单消息的传输路由 129  3.3 动态菜单操作 131  3.3.1 添加菜单 131  3.3.2 插入菜单 133  3.3.3 删除菜单 135  3.3.4 插入菜单的命令响应 136  3.3.5 修改菜单 137  ...

    MFC类库介绍-中文版.zip

    也许因为自己薄弱的英语基础,成为你研发路上的绊脚石; 也许你会因为对MFC某一个库的理解不够深入,而使得你的项目...· 结构、风格、回调函数和消息映射 详细解说MFC库中的各个结构、风格、回调函数和消息映射。

    VC++ matlab图像处理

    17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 17.2.4 词典编码 17.3 有损压缩编码 17.3.1 预测编码 17.3.2 ...

    VC++几何绘图实例

    其它分类,几何绘图 VC++几何绘图实例,如何让CDC上输出的文字、图形具有保持功能,集合类CPtrArray的使用,CPaintDC与CClientDC的区别与应用,OnPaint与OnDraw在CView中的关系及实现内幕,滚动窗口的实现,坐标空间...

    深入浅出MFC【侯捷】

    :Serialize CArchive类 operator《和operator》 效率考虑 自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流...

    深入浅出MFC 2e

    消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的...

    侯捷- -深入浅出MFC

    消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的...

Global site tag (gtag.js) - Google Analytics