- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC AppWizard生成应用程序基本框架分析
MFC AppWizard生成应用程序基本框架分析基本框架分析 2
1.应用类CHelloworldApp 2
2.主窗口框架类CMainFrame 3
3.文档类CHelloworldDoc 4
4.视图类CHelloworldView 5
HelloWorld程序编写实例 6
1. 定义变量 6
2. 初始化变量 6
3. 输出字符串 7
摘要:在Visual C++中用MFCAppWizard帮助程序员快速生成应用程序框架,这在一定程度上实现了软件的自动生成和可视化编程。最基本的MFC应用程序框架由CXApp、CMainFrame、CXDoc和CXView类组成(X代表工程名称)。AppWizard是面向对象程序设计发展和工业化的产物。
MFC(Microsoft Foundation Class,微软基础类库)封装了大部分Windows API(Application Programming Interface)函数,大大简化了程序开发者的工作量,充分的重用代码,提高了程序开发效率。在Visual C++中还提供了ClassWizard,它利用Application Framework技术调用MFC库来建立程序需要新类、添加、修改各种消息和消息映射。
我最近刚接触MFC Application Framework,把我一点浅显的经验拿出来与大家交流。本文通过分析一个很简单的单文档程序来剖析MFC AppWizard生成应用程序基本框架。因为本文目的是MFC AppWizard生成应用程序基本框架的分析,所以就不再描述Application Framework及一些相关的技术。本示范程序用Visual C++6.0在Windows XP平台上编译制作。本示例程序的功能是在窗口中域输出“hello word!”字符串。为了便于描述,后文称这个示例程序为helloworld程序。
Visual C++6.0生成这个helloword程序基本框架的操作过程很简单。在Visual C++6.0的集成开发环境中,单击File弹出式菜单的New菜单项,系统会弹出一个New对话框,选中Projects标签,在对话框的左边会出现一个可供选择的项目列表,右边Project name编辑框里输入向新建项目名称helloworld,Localtion编辑框里输入保存项目的路径。从项目列表中选择MFCAppWizard(exe)项,单击OK按钮,进入MFC AppWizard-Step1对话框。应用程序类型选择Single document(单文档类型),选中Document/View architecture support(文档/视图结构支持)复选框,语种选择“中文[中国](APPWZCHS.DLL)”项,然后点击Finsh按钮,这样就生成了helloworld程序的基本框架了。框架仅仅是框架,还不具备我们所要求的功能——在程序的窗口中输出“hello world!”字符串。当然这正是我们剖析MFC AppWizard生成应用程序基本框架的目的所在,明白它的结构和接口再实现我想要的功能就很简单了,可谓水到渠成。
MFC AppWizard为我们生成了4个类CHelloworldApp、CHelloworldDoc、CHelloworldView、CMainFrame以及它们的实现代码,并巧妙地将这些代码结合在一起。下面我们开始真正的分析了。1.应用类CHelloworldApp
CHelloworldApp类的作用是完成主窗口框架的构造和显示工作,并处理消息,他同意管理程序收到的所有消息,然后把相应的消息发给相应的对象。
Windows总要求每个应用程序都有一个主函数main或WinMan,但我们会发现CHelloworldApp类的代码中没有main或WinMain,这是因为它被隐藏到应用程序框架的内部了,Windows会自动调用它。在CHelloworldCApp中有一个虚函数InitInstance,它是作为用户看得见的应用程序的入口函数来完成应用程序的初始化工作,它的主要部分代码如下所示(在helloworld.cpp文件中):
BOOL CHelloworldApp::InitInstance()
{
//省略部分代码
//以下进行单文档模版的创建及初始化
CSingleDocTemplate* pDocTemplate;?//定义一个单文档模板指针变量
pDocTemplate = new CSingleDocTemplate(?//新建一个单文档模板对象
IDR_MAINFRAME,?//菜单等资源标示号
RUNTIME_CLASS(CHelloworldDoc),?//文档类
RUNTIME_CLASS(CMainFrame
您可能关注的文档
最近下载
- DB11T 383-2023 建筑工程施工现场安全资料管理规程.docx
- 2024-2025学年小学劳动三年级上册人教版《劳动教育》教学设计合集.docx
- 单位工伤事故认定公示情况反馈表(样表).doc
- 卫生监督法律法规和政策文件答案-2024年全国疾控系统“大学习”活动.docx VIP
- (心理咨询师习题集《案例分析》.doc VIP
- 《民航危险品运输》教学课件.docx VIP
- 拼多多新商家基础经营能力认证考试题库答案,平台规则+商品设置+客户服务+订单售后.docx
- 推动车辆互联的创新驱动车联网MNO智能物联卡平台解决方案.pptx
- 云平台解决方案酒店管理系统的完美选择.pptx
- GB50084-2017 自动喷水灭火系统设计规范.docx
文档评论(0)