MFC---文档与视图结构】的更多相关文章

文档.视图.框架 文档/视图结构是MFC提供的一种不错的设计,它将数据的处理和显示分开来,这样更便于我们对程序的维护和扩展. 文档        文档对象用于管理和维护数据,包括保存数据.取出数据以及修改数据等操作,在数据被修改以后,文档可以通知其对应的所有视图更新显示. 文档类继承于CDocument类,主要成员函数: virtual BOOL OnNewDocument( );        创建新文档.可以重载使用. virtual BOOL OnOpenDocument(LPCTSTR…
理解文档/视图框架                                      出处.雷神 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往往被局限于在用向导生成的框架中.本文希望能够尽可能说明白文档视图框架之间是如何进行作用,希望能给一些朋友带来小小的帮助.     几个概念:     (虽然大家都知道了,雷神还是要重申一次)     文档对象:是用来保存数据的.     视图对象…
文档与视图结构 文档.视图的关系,是一对多的映射,一个文档可以对应多个视图,而一个视图只能对应一个文档.例如,一个.html文件,可以用记事本打开,也可以用浏览器打开,这里的.html文件就是文档,记事本和浏览器就是这个文档的两个视图. 文档和视图结构的优势在于数据的管理与显示分离,数据总是要以一定的结构来存储,而视图负责数据的呈现.数据往往有多种呈现方式,例如一份报表,可以用表格的形式呈现,也可以用图表的形式呈现.根据不同的需求以不同的形式呈现,这就是视图的特性. 在使用文档/视图体系开发应用…
k_eckel:http://www.mscenter.edu.cn/blog/k_eckel 文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦.然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Architecture的MFC程序框架,Document/Vi…
文档/视图概述 为了统一和简化数据处理方法,Microsoft公司在MFC中提出了文档/视图结构的概念,其产品Word就是典型的文档/视图结构应用程序 MFC通过其文档类和视图类提供了大量有关数据处理的方法 分为数据的管理和显示,文档用于管理和维护数据,视图用来显示和编辑数据 什么是文档 文档的概念在MFC应用程序中的适用范围很广,一般说来,文档是能够被逻辑地组合的一系列数据,包括文本.图形.图象和表格数据. 一个文档代表了用户存储或打开的一个文件单位.文档的主要作用是把对数据的处理从对用户界面…
上一节中鸡啄米讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述       分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图. MFC分割窗口的方式有两种,动态分割和静态分割. 动态分割窗口通常用于创建同一个文档对应的多个视图,而且这些视图一般都是同一类型的视图,能够在用户编辑文档的不同部分时提供方便. 大家看下Word里的动态分割窗口就很明白了,以Word 2007文档为例,在菜…
前面几节讲了菜单.工具栏和状态栏的使用,鸡啄米本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)创建的单文档工程Example34中,我们可以看到MFC向导自动为我们生成了CExample34Doc类.CExample34View类和CMainFrame类,它们就分别是文档类.视图类和框架窗口类. 文档/视图结构是MFC提供的一种不错的设计,它将数据的处理和显示分开来,这样更便于我们对程序的维护和扩展.下面…
前面一节中鸡啄米进行了文档.视图和框架的概述,本节主要讲解文档.视图.框架结构中各对象之间的关系. 各个对象之间的关系 文档.视图.框架结构中涉及到的对象主要有:应用程序对象.文档模板对象.文档对象.视图对象和框架窗口对象等.根据上一节的概述,大家对它们的概念已经有所了解了,下面就对它们之间的关系进行总结和概括,并对各个关系中用到的类的成员函数进行介绍. 1. 应用程序对象保存了一个文档模板的列表.在任何对象中调用全局函数AfxGetApp都可以获得应用程序对象的指针.通过调用CWinAppEx…
在文档试图应用程序,有时需要在工作区切换试图,以下就是如何切换试图了 .创建要切换的视图类,同时把构造函数,Create函数改变为public .在需要切换试图的动作响应中,加入切换代码,一般是在CMainFrame的菜单响应中加: void CMainFrame::On32771() { // TODO: Add your command handler code here CView *pOldActiveView=GetActiveView();//旧视图 CMyView *pNewAct…
一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): OnNewDocument(),第一次新建窗口调用,后面每次按“新建”,自动调用此函数 DeleteContents(),做一些释放资源的操作,每次按“新建”,新建前先调用此函数c)框架类可以认为是视图类的容器 测试多文档 // 注册应用程序的文档模板. 文档模板 // 将用作文档.框架窗口和视图之…
转自:http://www.jizhuomi.com/software/226.html 上一节讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述       分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图. MFC分割窗口的方式有两种,动态分割和静态分割. 动态分割窗口通常用于创建同一个文档对应的多个视图,而且这些视图一般都是同一类型的视图,能够在用户编辑文档的不同部分时提供方便…
转自:http://www.jizhuomi.com/software/221.html 前面几节讲了菜单.工具栏和状态栏的使用,本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)创建的单文档工程Example34中,我们可以看到MFC向导自动为我们生成了CExample34Doc类.CExample34View类和CMainFrame类,它们就分别是文档类.视图类和框架窗口类. 文档/视图结构是MFC提供…
项目初始设置在Visual studio中创建一个单文档MFC项目(本例以MFCTest为名称): 在项目属性的VC++页面设置包含目录.库目录,在链接器的输入中添加OCC库目录下的所有.lib文件名称 添加头文件在stdafx.h中添加: #include <BRepTools.hxx> #include <Standard_DefineHandle.hxx> #include <DsgPrs_LengthPresentation.hxx> #include <…
转自:http://www.jizhuomi.com/software/223.html 前面一节进行了文档.视图和框架的概述,本节主要讲解文档.视图.框架结构中各对象之间的关系. 各个对象之间的关系 文档.视图.框架结构中涉及到的对象主要有:应用程序对象.文档模板对象.文档对象.视图对象和框架窗口对象等.根据上一节的概述,大家对它们的概念已经有所了解了,下面就对它们之间的关系进行总结和概括,并对各个关系中用到的类的成员函数进行介绍. 1. 应用程序对象保存了一个文档模板的列表.在任何对象中调用…
Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录. Windows目录: Linux目录: Linux首先是建立一个根"/"文件系统,所有的目录也都是由…
Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录. Windows目录: Linux目录: Linux首先是建立一个根"/"文件系统,所有的目录也都是由…
Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录. Windows目录: Linux目录: Linux首先是建立一个根"/"文件系统,所有的目录也都是由…
一.Linux之文档与目录结构 1.Linux之文档与目录结构 Linux目录结构的组织形式和Windows有很大的不同.Linux没有“盘(如C盘.D盘.E盘)”的概念,而是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来. Linux与Windows系统目录有所不同,windows使用反斜杠"\"来作为目录分隔符,而Linux使用正斜杠"/"作为目录分隔符,如下: Windows目录: Linux目录: 登录linux系统,在终端输…
Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录. Windows目录: Linux目录: Linux首先是建立一个根"/"文件系统,所有的目录也都是由…
从该对象 如何访问其他对象 全局函数 调用全局函数AfxGetApp可以得到CWinApp应用类指针 应用 AfxGetApp()->m_pMainWnd为框架窗口指针:用CWinApp::GetFirstDocTemplatePostion.CWinApp::GetNextDocTemplate来遍历所有文档模板 文档 调用CDocument::GetFirstViewPosition,CDocument::GetNextView来遍历所有和文档关联的视图:调用CDocument::   Ge…
1. 创建不同的子frame. 在文档视图程序中 CMainFrame(class CMainFrame : public CMDIFrameWndEx) 继承自 CMDIFrameWnd (CMDIFrameWndEx 为 CMDIFrameWnd子类). 因此可以将 m_pMainWnd 转为 CMDIFrameWnd 的指针, 再调用 CreateNewChild 创建一个子frame. 此时可根据传入的具体的类名, 强制转换为所需的对象. CMDIFrameWnd* pMdiFrmWnd…
1.文档修改后,关闭时需要保存,主要用到2个函数,在需要更改文档内容的函数里调用SetModifiedFlag(TRUE),另一个就是SaveModified()函数,简单的例子: BOOL CMFC_Doc::SaveModified() { // TODO: 在此添加专用代码和/或调用基类 return CDocument::SaveModified(); } void CMFC_Doc::SetColor() { m_color=RGB(,,); SetModifiedFlag(TRUE)…
文档目录 本节内容: 简介 AbpWebViewPage 基类 简介 ABP通过nuget包Abp.Web.Mvc集成到Mvc视图里,你可以像往常那样创建常规的视图. AbpWebViewPage 基类 ABP也提供了AbpWebViewPage,它定义了一些有用的属性和方法,如果你使用启动模板创建你的应用,那么你所有的视图自动继承自这个基类. AbpWebViewPage定义了L方法用来本地化,IsGranted方法用来授权,IsFeatureEnabled和GetFeatureValue方法…
正文提纲的构建代码及注释: 显示效果: 目录结构与换行的代码及注释: 显示效果: 具体的有关的信息可以具体查看ctex文档,可以在导言区进行全局的设置,比如标题居中设置等.…
HTML文件是什么? q  HTML表示超文本标记语言(Hyper Text Markup Language). q  HTML文件是一个包含标记的文本文件. q  这些标记保速浏览器怎样显示这个页面. q  HTML文件必须有htm或者html扩展名. q  HTML文件可以用一个简单的文本编辑器创建. 想不想尝试一下? 假如你运行的是windows系统,打开记事本,在其中输入以下文本: <html> <head>    <title>Title of page<…
参考:http://www.360doc.com/content/11/1102/09/3054335_160991088.shtml 写的很详细可以看看 IDC_:控件的ID命名前缀(Control) IDM_:菜单的ID命名前缀(Menu) IDD_:对话框的ID命名前缀(Dialog) IDR_:资源的ID命名前缀(Resource) IDS_:字符串的ID命名前缀(String) IDB_:位图资源的ID命名前缀(Bitmap) mfc鼠标拖拽选区…
先来个段子 十年生死两茫茫,喜羊羊,灰太狼.舒克贝塔,蓝猫话凄凉.纵使相逢应不识,圣斗士,美猴王.老夫聊发少年狂,治肾亏,不含糖.锦帽貂裘,千骑用康王.为报倾城随太守,三百年,九芝堂.夜来幽梦忽还乡,学外语,新东方.相顾无言,洗洗更健康. ------------------调皮的分割线----------------------- Outlook风格在http://blog.csdn.net/wlsgzl/article/details/32083145中已经实现了,这里只搞一下多视图. ==…
问题1. 在菜单中项中输入&Run\tF5, 运行显示Run,而不是Run F5. 问题2.在Accelerator中绑定了快捷键,但运行程序不起作用. 以上2中问题在VC++2008和VC++2010中,是由于窗体的信息保存在注册表中没有更新导致的.所以必须手动更新一下,具体是一下操作: 1.在源程序中找到SetRegistryKey(_T("Eastcompeace\\yxstars\\SmartSS")); 2.在运行中输入"regedit",进入注册…
Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录. Windows目录: Linux目录: Linux首先是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来. 登录系统后,在…
要求 1. 在客户区输出一条顺时针45度的直线.一个正方形.一个大圆: 2. 在客户区输出一个图标: 3. 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆. 首先设置两个变量,用来保存颜色和线宽.这样就但是通过程序设置圆或者线条的颜色和宽度了.(加入在view类的构造函数中) COLORREF color; int penwidth;</span>     2. 画45度直线的实现代码例如以下: CClientDC dc(this); CPen pen(PS_SOLID,penw…