1. 向导流程
在VS中选择“文件” – “新建” – “项目”:
选择 MFC – MFC应用程序,接下来我们创建一个单文档MFC标准类型应用程序。
一路按默认值next,到最后一个页面:
MFC自动为我们生成了四个类,它们的继承关系如下:
2. 类视图
3. 文档/视图结构体系
MFC应用程序框架结构的基石是文档/视图体系结构,它定义了一种程序结构,这种结构依靠文档对象保存应用程序的数据,并依靠视图对象控制视图中显示的数据,把数据本身与它的显示分离开。
数据的存储和加载由文档类来完成,数据的显示和修改则由视类来完成。 MFC在类CDocument和CView中为稳定视图提供了基础结构。CWinApp、CFrameWnd和其他类与CDocument和CView合作,把所有的片段连在了一起。
CView类也派生于CWnd类,框架窗口是视图窗口的一个父窗口。主框架窗口(CFrameWnd)是整个应用程序外框所包括的部分,即图中粗框以内的内容,而视类窗口只是主框架中空白的地方。
4.消息处理的添加
在主框架类中添加WM_LBUTTONDOWN消息的响应函数,具体操作如下:
从类视图中找到CMainFrame(继承自CFrameWnd),选择此类然后从属性面板中找到消息按钮,在消息列表中找到WM_LBUTTONDOWN消息,添加。
工程文件增加几处改变:
- 第一处:在框架类头文件中添加了鼠标左键消息函数的函数声明
- 第二处:在框架类cpp文件中添加了消息映射宏
- 第三处:在框架列cpp文件中添加了处理鼠标左键消息的函数定义
我们再此OnLButtonDown函数中添加一个MessageBox消息,鼠标左键按下弹出一个提示框,然后执行程序。我们会惊奇的发现程序并未如我们所愿弹出消息框。
因为,框架窗口是视窗口的父窗口,那么视类窗口就应该始终覆盖在框架类窗口之上。就好比框架窗口是一面墙,视类窗口就是墙纸,它始终挡在这面墙前边。也就是说,所有操作,包括鼠标单击、鼠标移动等操作都只能有视类窗口捕获。