MFC 自定义消息

Windows是一种消息机制,操作系统与程序之间是通过消息进行交流的,在MFC中定义了一些WM_消息,但是这些消息并不是可以响应任意的消息,所以就需要进行自定义消息。

自定义消息的时候应该处理三个地方:

第一:在头文件中的消息响应函数的声明

第二:在实现文件中的消息映射表

第三:在实现文件中队响应函数进行实现。

下面就对一个用户自定义消息进行定义:

具体步骤如下:

1、 在头文件stdafx.h中增加一个自定义消息宏WM_USERMESSAGE,并且为其指定ID号,关于ID号的指定应该使用WM_USER + NUM,其中NUM代表一个整数,为了防止用户定义的消息ID与系统的消息ID冲突,MS(Microsoft)定义了一个宏WM_USER,小于WM_USER的ID被系统使用,大于WM_USER的ID被用户使用,因此,WM_USER也称为用户消息边界。

        #define WM_USERMESSAGE WM_USER + 10

2、 在头文件中的DECLARE_MESSAGE_MAP()之前声明一个回调函数,注意这个回调函数的声明格式为:

       afx_msg LRESULT OnFuctionName(WPARAMwParam, LPARAM lParam);

      其中:返回值必须为LRESULT,不可为void类型。

3、 在实现类的文件中添加消息响应函数,这个消息响应函数在BEGIN_MESSAGE_MAP,END_MESSAGE_MAP之间,并且形式为:

       ON_MESSAGE(WM_USERMESSAGE,OnFuctionName)

ON_MESSAGE是MFC里面的一个自定义消息映射宏,它的作用是绑定一个自定义的消息和该消息的响应函数。

原型:ON_MESSAGE(message, memberFxn )

参数: message:消息的ID。  

memberFxn :映射message的消息函数

备注: 用户自定义消息通常定义在WM_USER(0x0400)至0x7FFF范围内,用户定义的任何消息都不是正规的windows窗口消息WM_MESSAGE 。用户自定义消息必须明确地在程序中用ON_MESSAGE宏来声明,从而绑定一个消息响应函数。

4、 在实现类中写实现类的实现体,格式如下所示:

    LRESULT CUSERMessageDlg::OnFuctionName(WPARAMwParam, LPARAM lParam)

{

   //其他代码

          return 0;

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值