MFC框架窗口界面设计
MFC
MFC框架窗口界面设计
1框架窗口 2菜单 3工具栏 4状态栏 5交互对象的动态更新 6图标和光标
MFC
1框架窗口1.1单文档和多文档程序框架窗口 文档应用程序的MFC类结构
如图是单文档应用程序Ex_SDI和多文档应用程序Ex_MDI的MFC类结构。
CAboutDlg是每一个应用程序框架都有的,用来显示本程序的有关信息。 CEx_SDIApp和CEx_MDIApp是应用程序类,是从CWinApp类派生而来,负责应用 程序创建、运行和终止,每一个应用程序都需要这样的类。 CEx_SDIDoc和CEx_MDIDoc是文档类,它们是从CDocument类派生而来,负责应 用程序文档数据管理。 CEx_SDIView和CEx_MDIView是视图类,它们既可以从基类CView派生,也可以 从CView派生类派生,负责数据的显示、绘制和其他用户交互。 CMainFrame类是用来负责主框架窗口的显示和管理,包括工具栏和状态栏等界 面元素的初始化。对于单文档应用程序来说,主框架窗口类是从CFrameWnd派 生而来的,而对于多文档应用程序程序,主框架窗口是从CMDIFrameWnd派生的。
MFC
1框架窗口CChildFrame类是从CMDIChildWnd派生而来,专门用来管理多文档应用程序中 的 文 档 窗 口 。 无 论 是 CMDIChildWnd 还 是 CMDIFrameWnd 类 , 它 们 都 是 从 CFrameWnd派生而来的。 对于基于对话框的应用程序,一般有CAboutDlg类、应用程序类和对话框类。 上述MFC类之间的继承和派生关系如图2所示。CObject
CWinTread
CCmdTarget
CDocument
CWinApp
CWnd
CView
CFrameWnd
CDialog及控件
CMDIFrameWnd
CMDIChildWnd 图2 MFC类的基本层次结构
CMiniFrameWnd
MFC
1框架窗口 项目的文件组织 项目中源文件都是采用文件夹的方式进行管理的,将项目名作为文件夹名,此文件夹下 包含源程序代码文件、项目文件以及项目工作区文件等。每一个类的源代码均保存同名 的h和cpp文件。其他一些文件类型的含义: .opt 关于开发环境的参数文件,如工具条位置等信息 .aps(AppStudio File) 资源辅助文件,二进制格式 .clw ClassWizard信息文件 .dsp(DeveloperStudio Project) 项目文件 .plg 编译信息文件 .mdp(Microsoft DevStudio Project) 旧版本的项目文件 .bsc 用于浏览项目信息 .map 执行文件的映像信息纪录文件 .pch(Pre-Compiled File) 预编译文件,可以加快编译速度,但是文件非常大 .pdb(Program Database) 记录程序有关的一些数据和调试信息 .ncb 无编译浏览文件(no compile browser) 还有相应的Debug(调试)、Res(资源)等子文件夹。用应用程序向导创建项目时,系统自 动为项目创建Win32 Debug版本的运行程序,并使用相应的默认配置。程序编连后,用 于该项目的可执行文件以及其他调试的信息文件都安放在Debug文件夹中。 程序项目有一个Win32 Release版本,与Release的区别在于:Debug版本
的运行程序有 相应的调试信息码,Release版本的运行程序没有,但Release版本的运行程序经过代码 的优化,其程序的运行效率被最大提升。 选择“编译” “配置”菜单命令,在“配置”对话框将项目设置成Win32 Release版 本。
MFC
1框架窗口 主框架窗口和文档窗口
主框架窗口是直接放置在桌面(DeskTop)上的那个窗口,每个应用程序只能 有一个主框架窗口。主框架窗口负责管理各个用户交互对象并根据用户操作 相应地创建或更新文档窗口及其视图。 文档窗口对SDI程序来说,和主框架窗口是一致的,主框架窗口就是文档窗 口;对于MDI程序,文档窗口是主框架窗口的子窗口,如图。 文档窗口一般都有相应的可见边框,它的客户区(除了窗口标题栏、边框外 的区域)是由相应的视图来构成的,因此可以说视图是文档窗口内的子窗口。 文档窗口时刻跟踪当前处于活动状态的视图的变化,并将用户或系统产生的 消息传递给当前活动视图。
MFC
1框架窗口1.2窗口状态的改变MFC AppWizard为每个窗口设置了相应的大小和位置。 运行程序时,会自动调用框架内部的WinMain函数,并自动查找该应用程序 类的全局变量theApp,然后自动调用用户应用程序类的虚函数InitInstance, 该函数会进一步调用相应的函数来完成主窗口的构造和显示工作,代码: BOOL CEx_SDIApp::InitInstance() { … m_pMainWnd->ShowWindow(SW_SHOW); // 显示窗口 m_pMainWnd->UpdateWindow(); // 更新窗口 return TRUE; } m_pMainWnd是主框架窗口指针变量,ShowWindow是CWnd类的成员函数, 用来按指定的参数显示窗口。
MFC
1框架窗口
通过指定ShowWindow函数的参数值可以改变改变窗口显示状态。例如下面的 代码是将窗口的初始状态设置为“最小化”: BOOL CEx_SDIApp::InitInstance() { ... m_pMainWnd->ShowWindow(SW_SHOWMINIMIZED); m_pMainWnd->UpdateWindow(); return TRUE; }
MFC
1框架窗口1.3窗口风格的设置 窗口风格
通常有一般和扩展两种形式。可在函数CWnd::Create或CWnd::CreateEx参 数中指定,CreateEx函数可同时支持以上两种风格,CWnd::Create只能指定 窗口的一般风格。控件和对话框的窗口风格可直接通过其属性对话框来设置。 除了上述风格外,框架窗口还有以下三个自己的风格。它们都可以在 PreCreateWindow重载函数的CREATESTRUCT结构中指定。 FWS_ADDTOTITLE 该风格指定相关的信息如文档名添加到框架窗口标题的后面。 FWS_PREFIXTITLE 该风格使得框架窗口标题中的文档名显示在应用程序名之前。 FWS_SNAPTOBARS 该风格用来调整窗口的大小,使它刚好包含了框架窗口中的控制栏。 例 cs.cx =300; cs.cy = 200;
cs.style =cs.style & ~FWS_ADDTOTITLE;
//取反
cs.lpszName = "大连理工大学";
MFC
1框架窗口 在MFC AppWizard中进行修改 [例Ex_SDI] 在向导中修改窗口风格。 (1)选择“文件” “新建”,选择“工程”,选择MFC AppWizard(exe)的项目 类型,指定项目工作文件夹位置,输入项目名Ex_SDI,单击[确定]按钮。 (2) 在向导的第一步中,将应用程序类型选为“单个文档”(SDI)。 (3) 单击[下一个],如图,可以选择程序中是否加入数据库的支持。 (4)单击[下一个],出现向导的第三步对话框,如图,允许在程序中加入复合文 档、自动化、ActiveX控件的支持。
MFC
1框架窗口(5)单击[下一个],如图,对 话框的前几项依次确定对浮 动工具条、打印与预览以及 通信网络等特性的支持。对 话框的最后两项是最近文件 列表数目的设置(默认时为4) 和一个[高级]按钮 。
MFC
1框架窗口(6)在第四步对话框中,单击[高 级],如图,分别用于文档模板字 串资源内容和窗口风格的修改。
MFC
1框架窗口(7)单击[关闭],单击[下一个],如图。可选择:应用程序的主窗口 是MFC标准风格还是窗口左边有切分窗口的浏览器风格,在源文件中 是否加入注释用来引导用户编写程序代码,是使用动态链接库(DLL) 还是静态链接库。 (8)单击[下一个]按钮,出现如图9所示的对话框。在这里,用户可以 对MFC AppWizard提供的默认类名、基类名、各个源文件名进行修改。
MFC
1框架窗口(9) 单击[完成],单击[确定],回到主界面。 在向导中作出的选择,有部分内容反映在CEx_SDIApp::InitInstanc …… 此处隐藏:3869字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




