第10章 Visual C++编程实例
第10章 Visual C++编程实例
10.1 MFC编程流程
10.2 常用MFC类和消息处理
10.3 对话框的应用
10.4 菜 单 的 应 用
10.5 工具栏应用
第10章 Visual C++编程实例
10.1 MFC编程流程
在普通的C/C++程序中,可以看到程序从main函数
开始到结束的所有代码,但在Visual C++中MFC封装了
一部分类,同时也隐藏了一部分代码,因此我们看不
到源程序的所有代码,例如从项目的所有源文件中找
不到main函数。
基本对话框的MFC程序流程图如图10-1所示。
第10章 Visual C++编程实例
程序开始
生成 CwinApp 的一个实例,
初始化全局对象
WindMain ()
的函数体
程序结束
图 10-1
AfxWinMain()
的函数体
初始化句柄
退出句柄
消息循环
退出句柄
第10章 Visual C++编程实例
一个MFC程序运行的一般过程如下:
(1) 生成CwinApp的一个实例(调用CwinApp的构造函数),
初始化全局对象;
(2) Win32入口程序函数WinMain调用函数AfxWinMain;
(3) AfxWinMain调用函数CwinApp的成员函数InitInstance;
(4) AfxWinMain调用函数CwinApp的成员函数Run;
(5) AfxWinMain函数返回到WinMain,WimMain结束,程
序结束。
第10章 Visual C++编程实例
例10-1 吹泡泡程序。每当用户在窗口客户区中按
下鼠标左键时即可产生一个泡泡(彩色圆形)。
设计思路:显示一个泡泡所需的数据包括其位置
和大小,在MFC中可用其包含矩形表示。可设置一数
组,每当用户按下鼠标左键时,就产生一个泡泡的数
据并存入数组中。最后,由框架窗口类的OnPaint()函
数显示所有的泡泡。
第10章 Visual C++编程实例
#include
#define MAX_BUBBLE 250
class CMyWnd:public CFrameWnd
{
CRect m_rectBubble[MAX_BUBBLE];
int m_nBubbleCount;
public:
CMyWnd() {m_nBubbleCount=0;}
第10章 Visual C++编程实例
protected:
afx_msg void OnLButtonDown(UINT nFlags,CPoint
point);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
//消息映射
BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_PAINT()
END_MESSAGE_MAP()
第10章 Visual C++编程实例
//框架窗口类的成员函数
void CMyWnd::OnLButtonDown(UINT nFlags,CPoint point)
{
if(m_nBubbleCount