目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构。这种程序框架与简单程序框架之间的重要区别就在于形成应用程序的主窗口不只需要一个类的对象,而是需要3个对象:
- 框架窗口类(CFrameWnd)对象
- 视图类(CView)对象
- 文档类(CDocument)对象
- 首先,我们建立一个简单的文档/视图结构的应用程序esayApp(在应用向导中基本遵从默认即可),如图所示:
- 在菜单的资源编辑器中添加“testMessage”选项,如下图所示:
在添加的选项上右键,然后点击属性,注意其ID(当添加新选项是,系统会默认生成一个ID),在这里我们为了强调,将默认ID改为”ID_TESTMESSAGE“。然后打开Resource.h文件,在其中会发现系统自动为新添加项增加了序号,如下图所示:(如果没有需要自己手动添加)
- 现在,我们在视图类中添加该菜单的消息映射和消息响应函数。
- 在simpleAppView.cpp中添加新的消息映射:
- 在simpleAppView.h中添加消息响应函数的声明:
- 最后在simpleAppView.cpp中添加消息响应函数是实现:
至此,具有消息响应功能的视图/文档结构的MFC应用程序就设计完成了,单击“文件-->testMessage”效果如下:
总结下消息响应函数添加的过程:
- 设置事件触发的ID,并在Resource.h中指定具体值(有些版本会自动生成)。
- 在xxxView.cpp中添加新的消息映射:ON_COMMAND( , )。
- 在xxxView.h中添加消息响应函数的声明:afx_msg void fun_xxx()
- 在xxxView.cpp中添加新的消息响应函数的具体实现:void fun_xxx()