3MFC应用程序概述.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可视化程序设计 第3章MFC应用程序概述 第3章 MFC应用程序概述 3.1 微软基础类MFC MFC概述 MFC的类层次结构 MFC定义的宏、全局函数及全局变量 3.2 MFC应用程序框架 创建基于MFC框架的应用程序 MFC应用程序分析 3.3 消息机制 消息的种类 消息映射及消息传递 自定义消息 微软基础类MFC 类库是一个可以在应用程序中使用的相互关联的类的集合。MFC中包含了200多个类,封装了Windows的大部分编程对象和相关的操作。MFC是一个庞大的文件库,它由几百个执行文件和源文件构成。 MFC的类层次结构 MFC定义的宏、全局函数及全局变量 MFC提供的主要宏 消息映射宏: MFC程序处理消息非常轻松,得益于其庞大的消息宏系统,使程序设计人员从记忆大量的消息参数中解脱出来。声明消息映射表宏DECLARE_MESSAGE_MAP、定义消息映射表宏BEGIN_MESSAGE_MAP和END_MESSAGE_MAP对、消息映射表入口宏ON_加消息名。 动态MFC对象宏:DECLARE_DYNCREATE和DECLARE_DYNAMIC, IMPLEMENT_DYNCREA TE和IMPLEMENT_DYNAMIC 运行时类宏:RUNTIME_CLASS 序列化宏:DECLARE_SERIAL和IMPLEMENT_SERIAL 诊断服务宏: ASSERT、VERIFY 跟踪服务宏:TRACE 异常处理宏:THROW 全局函数 AfxAbort( ), 无条件中断应用程序 AfxMessageBox( ), 显示一个消息框 AfxGetApp( ), 返回一个指向Project的CWinApp Object的指针 AfxGetAppName( ), 返回应用程序的名字,类型为一个指向字符串的指针 AfxGetMainWnd( ), 返回指向主框架窗口(Main Frame Window)的指针 MFC应用程序分析 Project.dsw 工作区文件,包含当前工作区项目的信息 Project.dsp MFC的项目文件,包含当前项目的设置和文件等信息 Project.mak MFC的项目文件,与NMAKE兼容 Project.clw ClassWizard用来编辑类、消息映射和对话框数据所需信息 Project.h 主应用程序头文件 Project.cpp 主应用程序源文件(应用程序类源代码) ProjectView.h 视图类头文件 ProjectView.cpp 视图类源代码 ProjectDoc.h 文档类头文件 ProjectDoc.cpp 文档类源代码 MainFrm.h CMainFrame类头文件 MainFrm.cpp CMainFrame类源代码 StdAfx.h 头文件 StdAfx.cpp 由于MFC体系结构非常大,包含许多头文件,如果每次都编译则比较费时。因此将常用的MFC头文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h等,然后让stdafx.cpp包含这个stdafx.h文件。这样,由于编译器可以识别哪些文件已经编译过,所以stdafx.cpp就只编译一次,并生成所谓的预编译头文件project.pch(因为它存放的是头文件编译后的信息,故名)和预定义的类型文件StdAfx.obj。采用预编译头文件可以加速编译过程 Project.rc 包含项目的资源数据 Project.rc2 用于存放Visual Studio不可直接编辑的资源 Resource.h 头文件,包含#define语句来为项目声明常量 消息机制 消息的种类 Windows消息 命令消息 控件通知消息 自定义消息 消息映射及消息传递 如果要在MFC类中实现消息映射,首要在类的声明中宣布一个宏: DECLARE_MESSAGE_MAP() 这个宏的主要作用就是宣布了一个由消息映射函数入口地址组成的数组和一个消息MAP的数据结构。 自定义消息 首先定义一个消息 #define WM_MYMESSAGE WM_USER+100 在.CPP文件的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间定义一个映射函数: ON_MESSAGE(WM_MYMESSAGE OnMyFn) 在相应的.h文件中定义函数 afx_msg LRSULT OnMyFn(WPARAM wParam,LPARAM lParam); 在相应的.h文件中定义函数 LRSULT CMyClass::OnMyFn(WPARAM wParam,LPARAM lParam){ …… return 0; }

您可能关注的文档

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档