没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:鲍佳佳|2021-05-28 09:34:18.917|阅读 615 次
概述:前面几节讲了菜单、工具栏和状态栏的使用,本节开始将为大家讲解文档、视图和框架的知识。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
前面几节讲了菜单、工具栏和状态栏的使用,本节开始将为大家讲解文档、视图和框架的知识。开始前我们先了解一下mfc界面类库Xtreme Toolkit Pro。
Xtreme Toolkit Pro:是屡获殊荣的VC界面库,是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和Task Panel。
文档、视图和框架简介
在VS2019/MFC编程入门:菜单资源详解创建的单文档工程Example34中,我们可以看到MFC向导自动为我们生成了CExample34Doc类、CExample34View类和CMainFrame类,它们就分别是文档类、视图类和框架窗口类。
文档/视图结构是MFC提供的一种不错的设计,它将数据的处理和显示分开来,这样更便于我们对程序的维护和扩展。下面分别介绍这种结构中涉及到的几个重要概念。
文档
文档对象用于管理和维护数据,包括保存数据、取出数据以及修改数据等操作,在数据被修改以后,文档可以通知其对应的所有视图更新显示。
视图
视图对象将文档中的数据可视化,负责从文档对象中取出数据显示给用户,并接受用户的输入和编辑,将数据的改变反映给文档对象。视图充当了文档和用户之间媒介的角色。
框架
一个文档可能有多个视图界面,这就需要有框架来管理了。框架就是用来管理文档和视图的。框架窗口是应用程序的主窗口,应用程序执行时会先创建一个最顶层的框架窗口。视图窗口是没有菜单和边界的子窗口,它必须包含在框架窗口中,即置于框架窗口的客户区内。
文档模板
文档模板中存放了与文档、视图和框架相关的信息。应用程序通过文档模板创建文档对象、框架窗口对象和视图对象。另外,文档、视图和框架之间的关系也是由文档模板来管理的。
我们来看看Example34单文档程序中,CExample34App应用程序类的成员函数CExample34App::InitInstance()创建并注册文档模板的部分:
C++代码
BOOL CExample34App::InitInstance() { ......略 // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CExample34Doc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CExample34View)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); ......略 return TRUE; }
在构造文档模板类CSingleDocTemplate的对象时,第一个参数是资源ID IDR_MAINFRAME,它包括框架窗口图标等,后面的三个参数都是RUNTIME_CLASS宏的调用,RUNTIME_CLASS用于获取类的运行时信息,文档模板可以根据这些动态创建信息来创建相应类的对象,即文档对象、框架窗口对象和视图对象。AddDocTemplate函数用来注册文档模板对象。
框架类、文档类和视图类
在VS2010自动生成的代码中,框架类继承于CFrameWndEx类,文档类继承于CDocument类,视图类继承于CView类。
CFrameWndEx类又继承于CFrameWnd类,CFrameWnd类中用于管理文档和视图的成员函数包括:
virtual CDocument* GetActiveDocument( );
获得当前活动视图对应文档对象的指针,如果不存在则返回NULL。
CView* GetActiveView( ) const;
获得当前活动视图对象的指针,如果不存在则返回NULL。
void SetActiveView(CView* pViewNew, BOOL bNotify = TRUE);
设置活动视图。参数pViewNew为要激活的视图对象的指针,参数bNotify指定视图是否接收激活通知。
CDocument类的主要成员函数:
virtual BOOL OnNewDocument( );
创建新文档。可以重载使用。
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
打开文档。参数lpszPathName为要打开的文档的路径。可以重载使用。
virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
保存文档。参数lpszPathName指定文档保存到的全路径。可以重载使用。
CDocTemplate* GetDocTemplate( ) const;
获取此文档类型对应的文档模板对象的指针。如果此文档没有被文档模板管理则返回NULL。
virtual POSITION GetFirstViewPosition( ) const;
获取文档中视图列表的第一个视图的位置。
virtual CView* GetNextView(POSITION& rPosition) const;
利用此函数可以迭代处理文档的所有视图。参数rPosition为上一次调用GetFirstViewPosition或GetNextView成员函数返回的POSITION值的引用。
void AddView(CView* pView);
为文档增加一个视图。参数pView为要增加的视图对象的指针。
void RemoveView(CView* pView);
移除某个视图与文档的关联。参数pView为要移除的视图对象的指针。
void UpdateAllViews(CView* pSender, LPARAM lHint = 0L, CObject* pHint = NULL);
在文档被更改后调用此函数更新视图。参数pSender指向修改文档的视图,实际应用时常用来指定哪个视图不需要更新,如果更新所有视图则设为NULL,参数lHint包含了文档修改的信息,参数pHint指向存储文档修改信息的对象。
CView类中与文档/视图结构相关的成员函数包括:
CDocument* GetDocument( ) const;
获取视图关联的文档对象的指针。如果视图没有关联到文档上则返回NULL。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
文章转载自:ONLYOFFICE 表单可以轻松收集结构化输入,但空的、非必填字段经常会被忽略。在本篇博文中,我们将演示如何构建一个宏,用于突出显示表单中所有空的、非必填字段,或者仅突出显示包含特定提示文本的字段。
CST CAD Navigator 是一款功能强大、兼容性高的 CAD 图纸查看工具,由 CADSoftTools开发,能在 Windows、macOS 和 Linux 系统上稳定运行。它拥有简洁直观的操作界面,却内置强大内核,能实现对 2D 图纸和 3D 模型的快速查看。
在企业应用中,无论是生成报告、合同还是个性化信函,程序化创建 Word 文档都是常见需求。Spire.Doc for .NET 提供了无需依赖 Microsoft Office 的 C# Word 文档处理解决方案。
在文档管理系统、法律审查工具、发票处理工具和其他企业应用程序中,搜索PDF文档中的特定文本是一项常见任务。在本篇博文中,您将学习如何使用 C# 以编程方式在 PDF 文件中搜索文本。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢