欢迎来到天天文库
浏览记录
ID:44209717
大小:2.67 MB
页数:127页
时间:2019-10-19
《C编程-文档视图结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VisualC++面向对象编程第五章文档与视图主要内容基本术语1文档视图结构2菜单、工具栏和状态栏3鼠标消息处理4文档读写5滚动视图61基本术语基本术语-框架窗口标题栏主菜单工具栏客户区状态栏滚动条基本术语-文档可视化计算机的基本应用是信息管理,而信息是用数据表示,因此数据处理是一般软件都要完成的一项基本工作。文档是MFC应用程序中所要处理的数据的集合(包括文本、图形、图像和表格等)。文档对应于磁盘上存储的文件。文档的显示是指将文档内容显示在屏幕上。一般使用图形化方式有助于数据内容的理解和掌握。基本术语-文
2、档可视化基本术语-文档可视化2文档视图结构2.1概述文档和视图结构是MFC应用程序中最基本的结构,是MFC应用程序的核心。Windows应用程序主要处理:数据和数据的显示。Doc/View结构是专门用来处理可视化文档的。2.1概述在MFC中,文档(CDocument)与视图(CView)相连。文档是“内容”,视图是“表现形式”。一个视图只能对应一个文档,但是一个文档可以对应于多个视图。视图是一个没有边框的窗口(CView是CWnd的派生类)。它位于框架窗口的客户区。视图不能独立存在,必须依附于一个框架窗口(
3、CFrameWnd)。2.1概述文档类CDocument文档的读写数据处理数据管理框架窗口类CFrameWnd集成资源消息接收和分发视图类:CView文档内容的显示提供用户交互编辑接口2.1概述2.1概述2.1概述Doc/View架构的意义:MFC类已经把一个应用程序所需的“数据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,程序员可以在派生类中改写(重载)它们。例如:文件的读写:CDocument::Serialize数据的显示:CView::OnDraw2.1概述MFC已经把程序的大结构完成了,这
4、还包括模块间的消息传递以及各消息处理函数的功能都已经定义好了。例如:鼠标操作:WM_LBUTTONDOWN等等。键盘操作:WM_KEYDOWN2.1概述MFC的Document/View架构希望程序员把精力放在真正的数据结构设计和真正的数据显示操作上,而不要在模块的沟通或消息的传递上花费太多的时间。ApplicationFramework使程序的编写犹如做填空题、VC++的开发工具(IDE)则使程序开发犹如做选择题:我们先做选择题,然后再在骨干程序中做填空题。2.2文档模板例5-1:编写一个多文档应用程序M
5、yMDI,程序运行后在客户区窗口显示一段字符串2.2文档模板定义CMyMDIApp应用程序类对象Windows应用程序开始于此!这个虚函数需要我们重载:用于我们特定程序的初始化!2.2文档模板MFC提供了一个文档模板类CDocTemplate,这是一个抽象基类,用户不能直接使用它CDocTemplate有两个派生类CSingleDocTemplate对应于单文档CMultiDocTemplate对应于多文档文档模板的管理由CWinApp应用程序对象负责,这些内容体现在InitInstance中2.2文档模板
6、在SDI或MDI应用程序中,必须注册文档模板,需通过new运算符创建CSingleDocTemplate或者CMultiDocTemplate对象,然后调用函数AddDocTemplate注册文件模板对象。创建的例子参见教材P177的代码。2.2文档模板CMultiDocTemplate(UINTnIDResource,CRuntimeClass*pDocClass,CRuntimeClass*pFrameClass,CRuntimeClass*pViewClass);CSingleDocTemplate(
7、UINTnIDResource,CRuntimeClass*pDocClass,CRuntimeClass*pFrameClass,CRuntimeClass*pViewClass);CRunTimeClass类具有动态创建对象的功能,使得程序可以在不指定明确对象名的情况下动态创建相应类的对象。BOOLCMyMDIApp::InitInstance(){…CSingleDocTemplate*pDocTemplate;pDocTemplate=newCSingleDocTemplate(IDR_MAINFR
8、AME,RUNTIME_CLASS(CMySDIDoc),RUNTIME_CLASS(CMainFrame),RUNTIME_CLASS(CMySDIView));AddDocTemplate(pDocTemplate);…}与文档相关的资源ID文档模板类绑定:资源ID、文档类、框架窗口类、视图类。BOOLCMyMDIApp::InitInstance(){…CMultiDocTemplate*pDocTempl
此文档下载收益归作者所有