- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 应用程序框架和基本流程 ;2.1 应用程序框架; 应用程序框架实际上是一个完整的程序模型,具备标准应用软件所需的一切基本功能,如文件存取、打印预览、数据交换,窗口排列,……,以及这些功能的使用接口(菜单、工具栏、状态栏、对话框等)。;2.1.1 应用程序基本结构 ; 在Windows程序中,接受并处理消息的主角肯定是窗口。因此,每一个窗口都应该有一个函数负责处理消息,我们称此函数为“窗口函数”。窗口函数WindowProc以switch/case的方式判断消息的类别,决定处理的方式。另外,对于一个窗口,还必须有创建窗口的函数CreateWindow和显示窗口的函数ShowWindow。 ; 此外,每个Windows程序实例有一些初始化工作需要完成。因此,就应该定义一个初始化函数:InitInstance。; 因此,在MFC类库中,应用程序类CWinApp封装了消息循环函数Run、程序初始化函数InitInstance和退出函数ExitInstance 。;2.1.2 使用向导生成应用程序框架 ; 从AppWizard Step1可见,MFC生成的应用程序的用户界面只有三种类型:
单文档型:主边框窗口+视图+[文档]
多文档型:主边框窗口+子边框窗口+视图+[文档]
对话框型:对话框+控件;2.2.1 创建全局对象;2.2.2 AfxWinMain函数; InitApplication函数一般没有实质性的内容,程序的初始化主要通过InitInstance函数完成。 ; 现在, 执行的脚步到达pThread -Run(), 即调用CWinThread的Run函数。 ;theApp //创建全局的应用程序对象;2.3 应用程序框架类及其主要成员函数;2.3.1 应用程序类;CWinApp的主要数据成员:
m_pszAppName:指定了应用程序名称
m_pMainWnd :指向主边框窗口的指针
m_lpCmdLine:指示一个以NULL结尾的字符串,指向应用程序的命令行
m_nCmdShow:指示最初如何显示窗口;2.3.2 边框窗口类和视图类;2. 子边框窗口类
对于多文档的窗口型应用程序,在主边框窗口内还有一个或多个子边框窗口,它由CChildFrame管理,是从CMDIChildWnd类派生。; 视图由视图类管理,有二种视图类:
无文档/视图结构支持的应用程序,视图类是直接从CWnd类派生
有文档/视图结构支持的应用程序,视图类是从CView或其派生类派生。; 边框窗口类和视图类在MFC体系中的层次如下图所示。;4.边框窗口类的主要成员函数
Create、LoadFrame 用于创建边框窗口
PreCreateWindow 用于定制边框窗口
ShowWindow、UpdateWindow、DestroyWindow 用于显示、更新、销毁边框窗口
GetActiveView、GetActiveDocument 用于获得当前活动的视图和文档
EnableDocking、DockControlBar 用于允许工具栏停靠和确定具体的停靠位置
MDITile、MDICascade 用于平铺、层叠所有子窗口
MDIGetActive 获得当前活动的子边框窗口
OnPaint 用于重绘屏幕;5.视图类的主要成员函数
视图类用于程序的输入和输出,其主要成员函数都来自窗口基类CWnd,输入方面主要是改写鼠标消息处理函数,输出方面主要是改写OnPaint函数,以实现屏幕的数据显示和屏幕重绘。;2.3.3 对话框类和控件类; 对话框型应用程序是Windows的一种常见程序类型,如计算器和Windows Media Player,本教材中的许多程序也是对话框型应用程序。对话框型应用程序的对话框类是直接从CDialog类派生的。; MFC控件类可分为三类,一类是在Windows 3.x中就已支持的普通控件类,另一类是Windows 95 /NT/2000中支持的通用控件类,这些控件类都以”Ctrl”结尾。第三类是后期加入的对普通控件类的补充,也是从普通控件类派生的,称为附加控件类,适合于某些特殊应用。;CObject;3.对话框类和控件类的主要成员函数
OnInitDialog 初始化对话框
DoModal 显示模态对话框
DoDataExchange 对话数据交换和数据验证
GetDlgItem 获得某控件的指针
GetDlgItemInt、 SetDlgItemInt 获取或设置某控件的整形值
GetDlgItemText、 SetDlgIt
您可能关注的文档
- 第3章国际商务谈判前的准备.pptx
- 第3章变动成本法.pptx
- 第3章国民收入决定的简单模型.pptx
- 第3章利润表分析2.pptx
- 第3章促销的核心内容:产品和服务.pptx
- 第3章企业管理的基本职能.pptx
- 第3章会计循环Ⅱ:会计凭证与会计账簿.pptx
- 第3章人身保险实务.pptx
- 第3章企业战略规划.pptx
- 第3章Oracle资料学习.pptx
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)