定义VC 消息映射函数小结 2008-12-26 08:43:14| 分类: VC | 标签: |字号大
中
小 订阅
消息映射机制是Windows编程的核心内容。Windows 下的应用程序也都是通过消息驱动的机制来进行工作的。虽然VC开发环境自带了大量的系统消息处理函数,但我们实际的程序开发过程中总还是避免不了要写一些自定义的消息处理函数以满足所编写的软件功能的需要。那么在VC中如何定义自己的消息处理函数呢?其步骤如下:
1、在要定义消息映射函数的类的首部通过宏定义的方式定义一个用户类型的消息标识。定义方法如下:#define WM_USER1 WM_USER + 1 其中的WM_USER是系统定义好的用户类型的消息。只要以此为自定义消息的起点加上一个偏移量在0~0x3FFF之间的值,就不会和系统定义的其它消息发生冲突了。
2、在类上点击右键,然后在弹出的菜单中选择“添加成员函数”(Add member Function)。在弹出的添加函数对话框中的函数类型框中输入函数的类型。如:afx_msg LRESULT 消息处理函数一定要以afx_msg关键字开头,表明是全局函数。LRESULT是函数的类型。表明是系统回调函数。也可以是其它的类型。如int,void 等等合法的数据类型。在函数名称框中输入函数名。如:MyFunction(WPARAM wParam, LPARAM lParam).这两个参数是系统用于传递消息的附加参数。W开头的是十六位的信息参数。L开头的是三十二位的信息参数。
3、打开类的源文件。找到“BEGIN MESSAGE MAP” 和 "END MESSAGE MAP"。在两者之间声明消息与消息处理函数。如:ON_MESSAGE(WM_USER1, MyFunction).ON_MESSAGE是定义用户消息映射函数的系统函数。消息映射语句最好从 "//}}AFX_MSG_MAP”它的下一行开始写起。因为它是系统维护自动生成代码的标记。如果写在它的上面,有可能会被删除。
4、在类的源文件中找到刚定义的消息函数,写入实现代码。
5、在需要调用消息映射函数的地方用SendMessage(WM_USER1);即可调用所定义的函数。WM_USER1 就是我们刚定义的消息名称。
分享到:
相关推荐
这篇小结将深入探讨坐标变化的相关知识点,包括坐标映射方法和各种映射的具体应用。 首先,我们需要了解Windows API中的两种基本坐标系统:客户区坐标和屏幕坐标。客户区坐标是以窗口左上角为原点(0,0),向右和向...
小结: MFC ActiveX添加普通控件需要遵循特定的步骤,包括添加成员变量、实例化控件、添加Windows消息处理器、创建控件、添加成员函数和添加消息映射。通过正确地添加控件,可以解决添加控件报错问题,并提供了丰富...
#### 八、小结 通过以上介绍,我们可以看到VC6.0的项目设置涵盖了从编译器选项到链接器设置等各个方面。深入理解并合理配置这些选项可以帮助开发者更好地管理项目,提高代码质量和构建效率。虽然大多数情况下使用...
消息映射表是一个关联数组,用于将消息与相应的处理函数关联起来。 - **4.4.4 如何添加消息映射** 添加消息映射通常通过ClassWizard工具完成,或者手动在类中定义。 **4.5 ClssWizard 的使用** - **4.5.1 ...
1.8 小结:总结本章所学知识。 **第2章 Windows程序内部运行原理** 了解Windows程序的基本概念和工作原理: 2.1 Windows应用程序、操作系统、计算机硬件之间的相互关系: - API:应用程序接口,Windows提供的一...
**1.8 小结** - 总结本章所学的关键概念和技术。 #### 二、Windows程序内部运行原理 **2.1 Windows应用程序,操作系统,计算机硬件之间的相互关系** - **2.1.1 关于API** - API(应用程序编程接口)是操作...
1.8 小结 第2 章 Windows 程序内部运行原理 2.1 Windows 应用程序,操作系统,计算机硬件之间的相互关系 2.1.1 关于API (图1,没有) 2.1.2 关于消息及消息队列 (图1、图2 没有) 2.2 什么是句柄 2.3 谈谈...
第1章 Visual C++与数字图像处理 1 1.1 数字图像处理概述 2 1.1.1 图像与数字图像 2 1.1.2 数字图像处理研究的内容 4 1.1.3 数字图像处理的应用 6 1.2 Visual C++概述 8 1.2.1 C++语言简介 8 ...15.5 本章小结 640
- **1.7.4 小结**:总结指针、数组和字符串的相关知识。 **1.8 多文件程序的结构** - **源文件与头文件**:源文件(.cpp)存放代码实现,头文件(.h)存放函数声明。 - **模块化设计**:通过将程序拆分成多个文件来...
### 小结 WTL为MFC程序员提供了一种更轻量级的方式来创建对话框和控件。尽管它的API更接近底层的Windows API,但通过消息映射和控件类,它仍然保持了相当高的抽象级别,使得开发更加高效。在实际项目中,结合`WTL4...
1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20...
**4.4 小结** - 总结了使用VC++进行数据库开发的基础知识和步骤。 #### 五、实例篇 接下来的部分提供了多个具体的编程实例,涵盖了ODBC API编程、MFC ODBC编程、DAO数据库编程以及OLEDB客户数据库编程等内容。每个...
- **1.7.3 OpenGL 编程小结** - OpenGL提供了丰富的图形绘制命令,开发者可以根据需求灵活选择。 - 在MFC环境中结合OpenGL进行图形开发是一种常见的做法。 ### 第2章 计算机图形学要求 #### 2.1 实验的意义和...