- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 6 章 MFC基础
- 2 -
本章目标
了解MFC的类体系
了解MFC应用程序类型
熟悉MFC应用程序开发方法
熟悉MFC的全局函数
熟悉MFC的框架结构
熟悉MFC的消息映射和消息分类
掌握MFC应用程序向导的使用
熟悉MFC子控件的使用
掌握MFC的CString类、文件类的使用
熟悉动态数组类、链表类的使用
掌握MFC的常用绘图操作
熟悉MFC中与绘图有关的数据类型的使用
MFC概述—MFC简介
MFC(Microsoft Foundation Class Library)是微软基础类库的简称
MFC类库以层次结构组织起来,其中封装了大部分Windows API函数和Windows控件
MFC目的就是让程序员在MFC基础上来建立Windows下的应用程序
- 3 -
MFC概述—一个简单的MFC程序
#include afxwin.h //包含MFC头文件
//从MFC的主框架窗体派生用户窗体类
class CMyWnd: public CFrameWnd
{
public:
CMyWnd(LPCTSTR szTitle)
{
//调用父类的Create函数创建窗体
Create(NULL,szTitle);
}
};
//从MFC的应用程序派生用户程序类
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
//覆盖(改写)继承的应用程序初始化虚函数
BOOL CMyApp::InitInstance()
{
//创建窗体并保存到m_pMainWnd中
m_pMainWnd = new CMyWnd(_T(一个简单的MFC程序));
m_pMainWnd-ShowWindow(m_nCmdShow);
return TRUE;
}
//定义用户程序全局对象
CMyApp myApp;
- 4 -
MFC概述—MFC应用程序分析
无WinMain()函数
应用程序对象:必须利用应用程序类实例化一个全局对象
InitInstance()函数:派生类中重写,用于初始化应用程序
MFC窗体:利用MFC已有的窗体类派生或实例化
- 5 -
MFC概述—MFC应用程序开发方法
- 6 -
MFC应用程序框架—全局函数
函数原型
说明
AfxMessageBox()
显示一个Windows消息框
AfxGetApp()
返回当前应用程序对象的指针
AfxGetMainWnd()
获得程序主窗口的指针
AfxBeginThread()
创建一个新线程并执行它
AfxEndThread()
终止当前正在执行的线程
AfxFormatString()
格式化字符串
AfxGetInstanceHandle()
返回标示当前应用程序对象的句柄
AfxRegisterWndClass()
注册用于创建Windows窗口的窗口类
- 7 -
MFC应用程序框架—类体系
- 8 -
MFC应用程序框架—消息映射
进行MFC消息处理,需要为每一个要处理的消息提供一个消息处理函数
MFC框架会自动按照一套消息映射机制来调用相应的消息处理函数。
MFC消息映射采用C语言宏的方式,把消息和消息处理函数一一对应起来。
在MFC的框架结构下,可以进行消息处理的类的头文件(或类定义文件)里面都会含有DECLARE_MESSAGE_MAP()宏
- 9 -
MFC应用程序框架—消息映射
源程序中的消息映射区:
BEGIN_MESSAGE_MAP(CInheritClass,CBaseClass)
ON_MESSAGE(message1,meberFxn1)
ON_MESSAGE(message2,meberFxn2)
......
END_MESSAGE_MAP
- 10 -
MFC应用程序框架—消息映射
普通窗口消息
窗口消息
消息映射宏
默认处理函数
WM_CHAR
ON_WM_CHAR
afx_msg void OnChar (UINT, UINT, UINT);
WM_CLOSE
ON_M_CLOSE
afx_msg void OnClose();
WM_CREATE
ON_WM_CREATE
afx_msg int OnCreate(LPCREATESTRUCT);
WM_LBUTTONDOWN
ON_WM_LBUTTONDOWN
afx_msg void OnLButtonDown(UINT, CPoint);
WM_MOUSEMOVE
ON_WM_MOUSEMOVE
afx_msg void OnMouseMove( UINT, CPoint);
- 11 -
MFC应用程序框架—消息映射
命令消息
//命令消息
您可能关注的文档
- (HTML5程序设计及实践)第2章HTML5布局.ppt
- (HTML5程序设计及实践)第3章HTML5表单.ppt
- (HTML5程序设计及实践)第4章HTML5画布.ppt
- (HTML5程序设计及实践)第5章HTML5拖放.ppt
- (HTML5程序设计及实践)第6章HTML5音频和视频.ppt
- (HTML5程序设计及实践)第7章HTML5Web存储.ppt
- (HTML5程序设计及实践)第8章HTML5应用程序缓存.ppt
- (HTML5程序设计及实践)第9章HTML5多线程.ppt
- (HTML5程序设计及实践)第10章HTML5手机应用开发.ppt
- (HTML5程序设计及实践)第11章CSS3.ppt
文档评论(0)