MFC中如何自定义消息(加点关于MFC的牢骚)

1、在需要接收用户自定义消息的头文件中#define UM_PROGRESS WM_USER+n (n为一个正整数,因为windows的标准消息都小于WM_USER,这样可以避免和标准消息重复, Microsoft推荐自定义消息值至少为WM_USER+100) ;
2、在类头文件中加入自定义消息处理函数的声明:afx_msg void OnProgress();,注意消息附加参数的使用;
3、在类的实现文件中加入消息映射宏,ON_MESSAGE(UM_PROGRESS, OnProgress);
ON_MESSAGE映射自定义消息,而ON_COMMANDE映射windows命令消息。
4、在类的实现文件中定义该消息处理函数:afx_msg void OnProgress();;
5、用SendMessage或者PostMessage发送消息。前者直接把消息发送给窗口过程处理,而后者把消息发送到窗口消息队列等待处理。

MFC真不是学C++的好东西,太多的向下转换(基类指针到派生类指针的转换),且对于派生类成员函数的覆盖和虚拟有着太多的不确定性,还有些诸如临时对象(CRect(0,0,1,1))到该对象指针(CRect*)的转换,虽然定义了转换函数。还有个所谓 Template-Based Classes,用的是C++模板的语法,意思却又大相径庭,可以参看http://blog.csdn.net/digu/archive/2007/08/30/1765826.aspx。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值