第7章MFC编程基础知识.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:48 大小:471KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第7章MFC编程基础知识.ppt

第7章MFC编程基础知识.ppt

预览

免费试读已结束,剩余 38 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章MFC编程基础知识概述对于初学者,只需要清楚自己的代码往什么地方添加就可以(5)缺乏面向对象分析能力。面向对象的分析要求搞清楚一个系统中有哪些类、各个类之间有哪些联系,尤其是在编写基于文档/视图结构的应用程序时。该方面能力的培养要靠多分析一些程序中类之间的关系,并要参考相关方面的书籍介绍。本章把MFC类库中的主要类以层次结构做了一个简单的介绍,并对MFC应用程序的架构做了描述。对于MFC应用程序的学习,刚开始要“不求甚解”,懂得代码的放置以及原理就可以了,随着学习的深入,在查看MFC源代码后,就能逐渐了解到该类型应用程序的执行流程,从而最终掌握MFC应用程序的开发。7.1MFC概述7.1.1什么是MFC7.1.2MFC的设计原理7.1.3MFC的目标*7.1.4MFC的发展AFX和MFC的另一个区别是所使用的开发方法不同,AFX采用是自顶向下的设计方法,逐步将对象抽象出来并施加到Windows上;而MFC库采用的则是自底向上的设计方法,也就是说,从MFC的第一个版本开始,它的类就是建立在已有的WindowsAPI对象基础上的,这样就避免了AFX中代码的超支与浪费。当读者使用MFC进行编程时,将会发现在MFC源程序中有很多包含“AFX”的字符串,如函数名AfxGetApp(),常量名AFX_IDS_APP_TITLE,数据结构名AFX_MSGMAP_ENTRY等等。这些名称在WindowsAPI函数中是不存在的,它们是AFX开发小组遗留的痕迹,而MFC的基本框架正是建筑于这些东西之上,所以MFC多多少少保留了该开发小组的标志——AFX。可见Microsoft基本类库(MFC)封装了SDK(软件开发工具包)结构、功能及应用程序框架内部技术。该应用程序框架隐藏过去Windows程序员不得不处理的许多重复性工作。*7.1.5使用C++和MFC的好处7.2MFC的层次结构及其子类功能简介7.2.1MFC中类的层次结构图7.17.2.2根类CObject7.2.3应用程序体系结构类AfxGetResourceHabdle:获得一应用程序资源的句柄。AfxGetAppName:获得一指针,它指向一个包含应用程序名的字符串。相反,如果有一个指向CWinApp对象的指针,使用m_pszExename可以取得应用程序的名称。(2)CWinApp的公共数据成员m_pszAppName:指定应用程序的名称。m_nCmdShow:指定窗口最初将如何显示。m_pMainWnd:包含一个指针,它指向一个应用程序的主窗口。(3)CWinApp的公共成员函数LoadCursor:调取光标资源。LoadStandardCursor:调取Windows预定义光标,在windows.h中指定IDC常量。LoadIcon:调取一个图标资源。LoadStandardIcon:调取Windows预定义的图标,在windows.h中指定IDI常量。OpenDocumentFile:框架调用此函数打开一个指定的文档。(4)CWinApp的可超载(overload)的函数InitApplication:重载以执行任何应用程序层次上的初始化。InitInstance:重载以执行Windows对象实例的初始化,诸如建立用户窗口对象等。Run:运行缺省的消息循环,重载该函数以自定义消息循环。OnIdle:重载以执行任何应用程序指定的空闲时间处理。PreTranslateMessage:在窗口消息被TranslateMessage()和DispatchMessage()处理之前过滤它们。(5)CWinApp的保护成员函数SetDialogBkColor:为对话框和消息框设置缺省的背景颜色。Enable3dConrtols:允许具有三维外观的控件。3.应用程序线程类CWinThread该类为线程的基类,CWinApp是从CWinThread派生而来。该对象描述程序线程的执行,主线程的执行通常由一个CWinApp的派生对象提供。(1)CWinThread的公共数据成员m_hThread:当前线程的句柄m_nThreadID:当前线程的ID值m_pMainWnd:指向程序主窗口指针。(2)CWinThread的公共成员函数GetMainWnd:获取一个指向此线程的的主窗口指针。GetThreadPriority:获取当前线程的优先权。ResumeThread:减小一个线程的挂起计数。4.文档/视图类文档对象由文档模板对象创建,管理应用程序的数据。视图对象表示一个窗口的客户区,它显示文档数据并允许用户与之交互。CDocTemplate类:文档模板的基类。它负责协调文档、视窗和框架窗口的创建。CMu