3.3手工写一个稍复杂的MFC程序
上面的例子虽然是一个MFC程序,但它没有涉及框架类、消息响应等内容,这里我们手工写一个稍复杂的MFC程序,在该程序里我们会创建一个MFC主窗口,在主窗口里显示一个字符串,并且在主窗口上单击鼠标右键时,会跳出一个消息框。
1>新建一个空的Win32项目
2>打开解决方案资源管理器,为项目添加两个头文件Test.h和MainFrm.h,以及两个源文件Test.cpp和MainFrm.cpp,在Test.cpp中实现应用类,在MainFrm.cpp中实现主窗口的框架类。
3>打开Test.h,输入代码:
#pragma once
打开Test.cpp,输入代码:
#include
这两段代码基本上和上例类似,只是在应用类的初始化函数InitInstance中,为主窗口框架类指针分配了存储空间,然后显示了主框架窗口,其中主框架类指针m_pMainWnd在afxwin.h中定义。
打开MainFrm.h,输入代码:
#pragma once
打开MainFrm.cpp,输入代码:
#include
框架类用来实现主窗口。一般一个MFC程序只拥有一个主窗口,在主窗口里还可以显示一个或多个子窗口。我们要在窗口中写入一行字符串,因此我们要对绘制窗口消息WMPAINT进行处理,在该消息的处理函数中,定位好坐标,然后调用画字符的函数DrawText。如果我们不在窗口中画文字,那么OnPaint是不需要的,大家可以注释掉它看看效果,当然其消息映射ONWM_PAINT()和OnPaint的声明也要同时注释掉。
我们需要在窗口内单击鼠标左键,然后程序作出响应,所以我们要对窗口的单击鼠标左键的消息进行处理,函数OnLButtonDown就是该消息的处理函数。当用户在窗口范围内单击鼠标左键的时候,系统会调用该函数,在这个函数中,我们调用AfxMeaasgeBox来跳出一个消息框,因此用户单击左键的时候,会出现一个消息框。
4>运行工程结果如下图: