在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(Microsoft Foundation Classes)应用程序设计中的消息处理机制和消息映射机制。MFC是一个C++库,它为开发Windows应用程序提供了一种面向对象的方法。 1. **消息处理机制**:Windows...
该MFC参考含盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容。参考中“类层次结构图”是为了方便查找某个类... · 结构、风格、回调函数和消息映射 详细解说MFC库中的各个结构、风格、回调函数和消息映射。
通过这个"VC++之MFC类库中文手册",开发者可以快速了解并掌握MFC的各种类和函数,解决实际编程中的问题。手册可能涵盖以下内容:MFC的基本概念、类库结构、如何创建MFC应用、消息处理、控件使用、数据库操作、网络...
在MFC中,通常会使用`CDialog`类创建对话框,并通过消息映射机制来处理用户输入,包括键盘消息。 然而,如果想要在MFC对话框程序中直接处理键盘消息,而不是让MFC框架默认处理,可以重载`CDialog`类的`...
### VC++实例知识点总结 #### 一、Visual C++简介 **1.1 Visual C++ 和 MFC 的历史** - **Visual C++**: 微软公司推出的一款支持 Windows 平台下 C++ 开发的集成开发环境(IDE)。Visual C++ 通过提供强大的编辑...
2. **消息映射**:在MFC的`.h`和`.cpp`文件中定义消息映射,处理如按钮点击、文件选择等事件,触发图像处理操作。 3. **界面交互**:通过MFC控件(如按钮、对话框)与用户进行交互,获取输入参数或显示结果。 **五...
自组织映射(Self-Organizing Map,简称SOM)是一种无监督学习的神经网络模型,由芬兰科学家Teuvo Kohonen在1982年提出。这种算法主要用于数据的降维和可视化,常用于模式识别、分类和聚类任务。在本案例中,我们...
这些模型通过训练学习,形成一个映射关系,将特征映射到对应的数字上。 5. 训练与测试:使用已知的标签数据集对分类器进行训练,不断调整模型参数以提高识别精度。训练完成后,用独立的测试集验证模型的性能,评估...
在本项目中,我们利用VC++这一流行的C++开发环境来实现SVM的功能,使得开发者可以轻松地进行自动分类任务,例如文本自动分类,以及执行回归分析。 SVM的核心思想是找到一个最优超平面,该超平面能够最大程度地将...
开发者可以通过消息映射机制处理用户的输入,如点击按钮执行相应的操作,如查询库存、录入出库单等。 六、数据验证与错误处理 为了保证数据的准确性和系统的稳定性,需要在程序中加入数据验证和错误处理机制。例如...
从早期的红外行扫描仪、多光谱CCD相机到现代的合成孔径雷达(SAR),遥感设备的种类不断增多,但无论哪种设备,获得的原始图像均为二维图像。 - **需求分析**:在特定应用领域,例如地质勘探、城市规划等,三维图像...
- **消息分类**:根据菜单项的不同类型和功能进行分类。 - **标记菜单的创建**:如何创建带有特殊标记的菜单。 - **缺省菜单**:默认情况下提供的菜单。 - **图形标记菜单**:在菜单项旁边添加图形。 - **菜单项使能...
vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...
- **4.5.4 如何添加消息映射** - 具体的操作步骤。 - **4.6 ClassWizard的使用** - **4.6.1 ClassWizard概貌** - ClassWizard是MFC提供的一个辅助工具。 - **4.6.2 如何添加消息处理函数** - 如何使用...
### VC++ 对话框 标准控件 #### 4.1 对话框的组成与分类 ##### 4.1.1 对话框的组成 对话框是Windows应用程序与用户进行交互的重要界面元素。对话框主要由两部分组成: 1. **对话框模板**:对话框模板定义了对话框...
在362页,作者可能详细解释了缺页的分类:正常缺页和故障缺页。正常缺页是进程运行时不可避免的情况,例如程序首次访问某个页面。而故障缺页则是因为非法地址访问、内存溢出等原因导致,这种情况通常需要进行错误...
分类器设计则涉及到选择合适的算法,如支持向量机(SVM)、神经网络、决策树或K近邻(KNN)等,用于将提取的特征映射到预定义的类别。 VC++提供了丰富的库来支持图像处理和模式识别,比如OpenCV(Open Source Computer ...
本章主要讨论MFC中的消息和命令处理,涵盖Windows消息的种类、MFC的消息处理机制以及各种消息的处理实例。 首先,Windows操作系统通过消息来驱动应用程序。一条Windows消息通常由三个部分组成:消息ID(如WM_PAINT...
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 ...