您的位置:首页 > 其它

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

2007-08-12 23:09 323 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: