VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
笔记:vc6.0添加自定义用户消息的基本过程

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

在学习<vc6.0技术内幕>过程中遇到要添加用户自定义消息的过程.我觉得书上写的比较散,于是就自己总结了这个基本过程,以为日后备查.

首先弄清楚两点:(1)谁要发送这个消息(2)谁要接受这个消息。

用一个简单的例子来说明。对象A向B(也可以就是A到A)发送消息。

1  发送消息

首先在A的头文件中定义这个消息:

#define   WM_USERMESSAGE   WM_USER+30

所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。A是向外发送消息的对象,因此在A的某个方法(函数)里就会调用用来发消息的函数B::SendMessage()/B::PostMessage(),因为是B接受消息,因此是如上的形式。

2  接受消息

对象接受一个消息,应该有三部分:在头文件中有该消息的处理函数的原型;在实现文件中有接受消息映射的宏; 以及该消息的处理函数的具体实现。

2.1  头文件中加上自定义消息的处理函数原型

在DECLARE_MESSAGE_MAP()语句之前,一对AFX_MSG之间加上如下形式的函数原型:

afx_msg  LRESULT OnProcName( WPARAM wParam, LPARAM lParam );

对Win32来说,wParam, lParam是传递消息最常用的手段。

2.2  在实现文件中加上接受消息映射的宏

在cpp文件里,BEGIN_MESSAGE_MAP语句之后,在一对AFX_MSG_MAP之间,增加 如下形式的代码:

ON_MESSAGE(WM_USERMESSAGE, OnProcName)

上面是不用分号结尾的。

2.3  在实现文件中给出消息处理函数的具体实现。

 




相关文章

相关软件