深入解析MFC消息路由
来源:互联网 发布:java 调用class 编辑:程序博客网 时间:2024/06/05 21:02
知道了MFC的消息路由的顺序,我们就可以重写某些虚函数,从而改变其路由顺序。比如我们想让CMyChildFrame首先响应菜单消息,就可以重写其OnCommand函数
{
//return CMDIChildWnd::OnCommand(wParam, lParam);
加上这个函数之后,其处理顺序就变成了:
CMainFrame其实给了两次CChildFrame处理消息的机会,一次是在CMDIFrameWnd::OnCommand()中,另一次是在CMDIFrameWnd::OnCmdMsg()中,两次最终都转变为调用CFrameWnd::OnCmdMsg.
从这也总结出应用程序使用MFC框架的两种方式,也是使用其它框架的主要方式:
1.
2.
对于1,我认为又有两种情况:
消息响应函数不是虚函数,函数名字也是用户自已取的,并且函数是在子类中(框架并不知道这个子类的名字),那框架是如何知道调用这个函数的呢?
这是因为在我们的子类中,在DECLARE_MESSAGE_MAP,BEGIN_MESSAGE_MAP,END_MESSAGE_MAP中完成了消息映射表的定义,表的填充并重写了CCmdTarget的虚函数GetMessageMap.
设计模式:
通过分析,我们可以看出MFC中所使用的最多的几种设计模式
1."职责链"(主要用在消息路由)
2.模板方法
3.文档模板(实质就是工厂+数据驱动,如果是在Java中,就不需要这样做了,因为Java中有反射API,可以直接由类的名字,字符串来生成对象)-->而这一过程的实质就是完成:接口与接口的实现的绑定
4.观察者模式(文档/视图)
- 深入解析MFC消息路由
- 深入解析MFC消息响应和消息路由
- 深入解析MFC消息响应和消息路由
- 深入解析MFC消息相应和消息路由
- 深入解析MFC消息响应和消息路由
- 深入解析MFC消息响应和消息路由
- MFC中的消息路由
- MFC的消息路由
- 深入浅出MFC:消息路由
- MFC消息路由
- MFC中的消息处理----<深入解析MFC>读书笔记
- MFC消息映射及路由
- 深入浅出MFC:对话框消息路由
- mfc消息响应和消息路由
- RIP路由协议深入解析
- MFC消息解析说明
- windows消息深入解析
- MFC的消息循环&MFC的消息路由
- 'GetEncoderClsid' : undeclared identifier
- 深入解析MFC消息响应和消息路由
- 善用Eclipse的代码模板功能
- 现实网络组网分析
- GDI+ 转换图片
- 深入解析MFC消息路由
- iptables内核编译
- Asp.Net 网站优化系列 数据库优化 分字诀 分表(纵向拆分,横向分区)
- 电感绕制
- JAVA数据结构
- Asp.Net网站优化系列 数据库的优化措施 索引优化
- 一位软件工程师的6年总结(转)
- POJ 2406 KMP
- GDI+实现图片格式转换(bmp、jpeg、gif、tiff、png) .