版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
构造应用程序框架
3.1单文档应用框架
所谓的单文档(SDI)界面应用程序,是指在应用程序中一次只能打开一个文件处理。打开下一个文件之前,必须先关闭上一个打开的文件,才能执行下一个打开操作。对于涉及文档较少的程序,只容许处理单个文档的程序或执行其它功能。2024/11/11VisualC++程序设计教程-2创建过程
创建工程。按照前一章创建工程的步骤创建一个工程,类型为SDI,工程名为Eg3_1,其他选项取默认值。单击“OK”按钮,AppWizard就开始创建应用的子目录、文件和类。添加自己的代码:
2024/11/11VisualC++程序设计教程-3创建过程(续)扩充Eg3_1View.cpp中的OnDraw成员函数:voidCEg3_1View::OnDraw(CDC*pDC){ CEg3_1Doc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere
pDC->TextOut(60,100,"Hello,WelcometoVisualC++6.0!");}
2024/11/11VisualC++程序设计教程-4创建过程(续)更改应用程序的标题:选择工作区中ResourceVies标签,展开Eg3_1Resources|StringTable,双击StringTable,弹出字符串资源表。双击IDR_MAINFRAME项,弹出StringProperties对话框。在Caption编辑框中将标题修改为“单文档应用程序\nEg3_1”。编译、链接并运行。
2024/11/11VisualC++程序设计教程-5CEg3_1App应用程序运行过程
CWinApp类创建的实例theApp,整个程序有且只有一个,一切由它开始,最后以它结束。VisualC++所产生的代码首先通过初始化数据段来建立全局变量,以及建立一些MFC内部使用的对象,然后执行CWinApp类的构造函数。
2024/11/11VisualC++程序设计教程-6CEg3_1App应用程序运行过程(续)一旦所有静态对象的构造函数都执行完毕,运行时间库就会调用WinMain()函数,该函数初始化MFC应用,并调用CWinApp类的InitInstance()函数。完成了这些工作后,WinMain()函数调用CWinApp类的Run()函数,通常默认为CWinThread::Run(),用来得到应用程序的消息循环,或称消息队列。
2024/11/11VisualC++程序设计教程-7CEg3_1App应用程序运行过程(续)当程序接收到WM_QUIT消息,就意味着程序终止。这时,MFC会调用CWinApp类的ExitInstance(),然后是静态对象的析构函数,包括CWinApp对象,然后将控制权交还操作系统。
2024/11/11VisualC++程序设计教程-83.2多文档应用框架
多文档(MDI)接口应用程序是指一个应用程序可以同时打开多个文件进行处理。
MDI是大多数应用程序采用的形式。Microsoft公司的Word应用软件就是一个典型的多文档应用。
2024/11/11VisualC++程序设计教程-9单文档应用程序和多文档应用程序的比较
在MDI程序中许多程序的细节是与SDI程序是相同的。在MDI程序中使用了CMultiDocTemplate模板,以便程序能够处理多个文档,同时也将视图和文档类连接到该模板及CChildFrame类,CChildFrame类支持出现在主窗口内部的MDI子窗口。
2024/11/11VisualC++程序设计教程-103.3基于对话框的应用框架
基于对话框的应用程序,是以对话框为形式的应用程序,它对于那些涉及文档较少,主要是交互式操作的应用程序来说比较合适。 基于对话框的应用框架和前面介绍的基于文档的应用框架有很大的区别。
2024/11/11VisualC++程序设计教程-11创建过程
在AppWizard的第一步,即MFCAppWizard--Step1中,选中“Dialogbased”单选框按钮。在第四步,AppWizard会显示出它将帮助用户创建的类及属性。在这个基于对话框的应用中只有两个类被创建。一个是应用类CEg3_3App,另一个是对话框类CEg3_3Dlg。
2024/11/11VisualC++程序设计教程-12创建过程(续)修改对话框资源: 在Textproperties对话框中,将Caption框中的“TODO:在这里设置对话控制。”删除,改成为“Hello,WelcometoVisualC++!”。编译、链接、运行。
注意:基于对话框的应用框架和基于文档的应用框架的区别在于实现对话框的第一步是创建一个对话框对象dlg,然后通过调用对话类的成员函数DoModal()来显示对话框。2024/11/11VisualC++程序设计教程-133.4程序运行流程分析
Windows的编程模式:
Windows程序运行总是由WinMain()函数开始,该函数主要是建立应用程序的主窗口。Windows程序通过操作系统发送的消息来处理用户输入,程序的主窗口中需要包含处理Windows所发送消息的代码。
2024/11/11VisualC++程序设计教程-14MFC应用程序的运行过程
2024/11/11VisualC++程序设计教程-15MFC应用程序的运行过程(续)MFC的应用程序运行过程如下:1.应用程序定义一个应用类全局对象。2.应用类对象的构造函数开始执行。3.构造函数执行完后,调用初始化函数InitInstance()。4.在函数InitInstance()中,构造文档模板。5.构造文档模板时,按照生成一个文档的顺序先产生一个最初的文档、视主框架。6.函数InitInstance()生成工具条和状态条,以及其它用户需要的工具。
7.函数InitInstance()执行完成后,应用程序处于等待消息的状态。
2024/11/11VisualC++程序设计教程-16三种应用程序框架的异同
相同:每个应用程序的应用类都会自动创建一个InitInstance()函数
相异:单文档应用程序中,应用类的对象由应用框架构造,使用单文档模板类CSingleDocTemplate的对象来构造文档模板。
2024/11/11VisualC++程序设计教程-17三种应用程序框架的异同(续)MDI应用程序中,应用类的对象同样也由应用框架构造,使用多文档模板类CMulitDocTemplate对象来构造文档模板。基于对话框的应用程序中,首先在函数中生成一个对话框对象,然后再通过DoModal()函数来调用和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 22073-1:2024 EN Gas welding equipment - Part 1: Line pressure regulators and line pressure regulators with flow-metering devices for gas distribution pipelines up to 6 M
- 企业中秋节的慰问信范文(7篇)
- 主持人的心得体会
- DB12T 606.1-2015 农村地区邮政与快递服务规范 第1部分:邮政
- 中秋晚会董事长精彩致辞范文(15篇)
- 端午节周记范文合集4篇
- 高等数学(管)-教学大纲
- 影响疫苗免疫效果的几点因素
- 影响孩子一生的早期教育
- 糖果王国课件教学课件
- 2023年中考英语备考让步状语从句练习题(附答案)
- JGJ/T235-2011建筑外墙防水工程技术规程
- ISO9001:2015内部质量审核控制程序
- 柔性生产线设计
- 物业项目交接计划方案
- T-HNKCSJ 002-2023 河南省地源热泵系统工程技术规范
- XX公司安全生产风险管控与隐患排查双重预防管理体系手册
- 解读《公司法》课件
- 酒店住宿水单模板-皇冠假日
- 人教版语文必修1:雨巷-共44张课件
- 一片叶子落下来课件
评论
0/150
提交评论