- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC第3章,MFC框架之文档与视图
第三章 MFC框架之文档与视图;本章内容;一、MFC应用程序的开发流程
创建一个应用程序框架
为新工程添加必要的资源,如菜单、对话框
按程序功能要求,为其添加新类及其类成员
编写类的成员函数的实现代码
编译、链接,修改错误,生成EXE文件
运行并测试新程序,修正设计缺陷
将程序由调试版升级为正式发行版;MFC应用程序开发流程图;二、AppWizard生成的文件类型
;MFC中资源标识符前缀
;三、ClassWizard的功能与应用初步
1、应用程序类的继承关系示意图;3、 classWizard的功能
创建新类
把消息映射为类的成员函数
新建或删除消息处理函数
察看已被处理的消息并跳到消息处理代码处
定义成员变量
创建新类时,自动加入方法和属性
处理现有的类和类库 ;4、 classWizard的应用
实例:编写一个SDI程序框架,并实现在视图区以信息对话框的形式显示用户点击鼠标左、右键和次数。
为视图类添加m_nLeft、m_nRight两个私有型变量,并在构造函数中对其初始化;
利用类向导在视图类中为鼠标左右单击操作添加“消息处理函数”OnLButtonDown()和OnRButtonDown();
为OnLButtonDown()函数添加功能代码,右键函数与此类似
m_nLeft++;
CString strOutput;
strOutput.Format(“鼠标左键单击的次数为:%d”, m_nLeft);
MessageBox (strOutput);
编译、链接并运行程序,测试程序效果。;2、MFC的文档/视图结构
采用分离机制将数据的管理和显示分作两部分,数据管理和维护由文档负责,数据的显示和编辑由视图负责。;3、文档/视图的相互作用函数
(1)视图类的GetDocument()函数
(2)文档类的UpdateAllViews()函数
(3)视图类的OnUpdate()函数;4、多文档
MFC多文档应用程序与单文档程序的根本差别
MDI窗口类的派生关系如下:
CMDIFrameWnd::CMainFrame——主框架窗口类;
CMDIChildWnd::CChildFrame——子框架窗口类;
文档模板——描述了对应于每一种类型文档的视图和窗口的类型,由其来确立文档、视图、框架和各种资源之间的固定关系。;SDI和MDI文档模板的样式:
文档模板是在APP类的初始化函数InitInstance()中声明。
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate( //单文档模板
IDR_MAINFRAME, //主框架资源的ID
RUNTIME_CLASS(CMySDIDoc), //SDI文档类
RUNTIME_CLASS(CMainFrame), // SDI主框架窗口类
RUNTIME_CLASS(CMySDIView)); //SDI视图类
AddDocTemplate(pDocTemplate);
//////////////////////////////////////////////////////
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_MYMDITYPE, //子框架窗口资源ID
RUNTIME_CLASS(CMyMDIDoc),
RUNTIME_CLASS(CChildFrame), // MDI子框架窗口类
RUNTIME_CLASS(CMyMDIView));
AddDocTemplate(pDocTemplate);;五、菜单设计及应用
1、建立菜单资源
实例:创建一个名为DrawCoin的SDI项目,添加“画硬币”主菜单,并增加两个菜单项“增加硬币”、 “减少硬币”。
编程:
(1)添加顶层菜单“画硬币(C)”
(2)增加两个菜单项(Menu Item)
ID_COIN_ADD 增加硬币(A)\tCtrl+A 在客户区增加一枚硬币\n增币
ID_COIN_SUB 减少硬币(S)\tCtrl+S 在客户区减少一枚硬币\n减币;2、添加菜单命令的处理函数
菜单实则一系列命令的列表,当某一菜单项被点击后,一个含有该菜单项ID标识的WM_COMMAND命令消息将发送给APP窗口,APP将该消息转换为一个“命令消息处理函数”的函数调用,从而响应命令。
利用“类向导”(Ctrl+W)工具为菜单添加消息映射函数,并添加用户代码:;本例中,为了实现菜单的操作功能,还必须完成如下三步:
(1)为文档类添
您可能关注的文档
最近下载
- 2025年全国英语等级考试PETS一级试卷:词汇与语法测试题库.docx VIP
- 2023年广西民族大学219翻译硕士泰语B卷考研真题.pdf VIP
- 汇川INOVANCE MD290系列通用变频器综合手册.PDF VIP
- 2020年广西民族大学219翻译硕士泰语(A卷)考研真题.pdf VIP
- GB-T 2423 2-2001电工电子产品环境试验第2部分:试验方法试验B:高温.docx VIP
- 第二单元《我们的班级》第7课《我是班级值日生》 (教学设计)统编版道德与法治二年级上册.docx VIP
- 实验室安全知识培训-完整版.pptx VIP
- 中华保险公司题目行测.pdf
- 练习十四 课件 人教版六年级数学上册.ppt VIP
- 2018年广西民族大学219翻译硕士泰语考研真题.pdf VIP
文档评论(0)