登录站点

用户名

密码

VC中添加自定义消息

已有 378 次阅读  2010-08-12 16:16   标签定义 
1、定义消息。在Windows中,所有的消息都用一个特定的整数值来表示,为了避免自定义消息与已存在的其他消息发生冲突,应该利用Windows提供的一个常量:WM_USER,小于这个常量的是系统保留的。即用户自定义的消息至少为WM_USER+1,注意最后表示的消息的数值不要超过0x7FFF。在开发Windows95应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。
 
在类的头文件中加入
#define WM_MESSAGE_NAME WM_USER + 101
 
2、在类头文件的AFX_MSG块中声明消息处理函数:
afx_msg LRESULT OnMessageName(WPARAM wParam,LPARAM lParam);
其中,LRESULT为返回值,也可以是void。参数为wParam和lParam
 
3、在类的实现文件中,使用ON_MESSAGE宏指令将消息映射到消息处理表中。
 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    //{{AFX_MSG_MAP(CMainFrame)
        ON_WM_CREATE()
        ON_WM_TIMER()
        ON_MESSAGE(WM_MESSAGE_NAME,OnMessageName )//注意这条语句的后面没有分号
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP() 
4、实现消息处理函数。
LRESULT CXXClass::OnMessageName(WPARAM wParam,LPARAM lParam)
{
   return 0;
}
其中,CXXClass是这个函数所在的类名。
 
       做好以上4个步骤就实现了添加自己定义的消息了,在你需要发送消息的时候用postmessage或sendmessage发送这个消息就好了。

上一篇: 用skinmagic给VC6开发的软件换肤 下一篇: 如何检测网线被拔出

分享 举报