MFC之document与view实践总结】的更多相关文章

Document/View是MFC的基石,负责程序数据的管理和显示,Doculent和Viewd的关系有一档一视,一档多视和多档多视,下面将分别对实现过程中的重点知识进行总结. 1. 视图的同步更新 2. 序列化和反序列化 3. 双缓存绘图 4. CSplitterWnd视图切割 5. 映射模式(SetMapMode) 6. 使用CMDIFrameWnd::OnWindowNew实现多视图显示 7. 多重文件类型 1. 视图的同步更新 UpdateAllViews----->OnUpDate--…
文章目录 一 View 二 Paint 2.1 颜色处理 2.2 文字处理 2.3 特殊处理 三 Canvas 3.1 界面绘制 3.2 范围裁切 3.3 集合变换 四 Path 4.1 添加图形 4.3 画线(直线或曲线) 4.3 辅助设置和计算 文章源码 DrawView WaveView RippleLayout LabelImageView 本文还提供了三个综合性的完整实例来辅助理解. View绘制 - 图片标签效果实现 Canvas绘图 - 水面涟漪效果实现 二阶贝塞尔曲线的应用 -…
1. 变量声明: 在Dlg.h    的public下 CXTPButton m_Button2; 2. 变量交换并设置按钮风格: Dlg.cpp下 void CXT_VS2010Dlg::DoDataExchange(CDataExchange* pDX) { CXTPResizeDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_BUTTON1, m_ButtonAccept); DDX_Control(pDX, IDC_BUTTON2, m_…
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…
一.Win32基本程序概念 所有的windows程序都必须载入windows.h MFC程序都有一个Stdafx.h文件,它载入了MFC框架必须的文件. Windows程序以消息为基础,以事件驱动之. 应用程序获得的"输入"分类: 1.由硬件产生的消息,如鼠标移动或键盘按下,这种消息放在系统队列. 2.由Windows系统或其他Windows程序传送过来的消息,这种消息放在程序队列. while GetMessage(&msg,NULL,NULL,NULL)//获得消息 { T…
1. MFC之所以为Application Framework,最重要的一个特征就是它能够将管理数据的程序代码和负责数据显示的程序代码分离开来,这种能力由MFC的Document/View提供.Document/View是MFC的基石,了解它,对于有效运用MFC有极关键的影响.甚至OLE复合文件(compound document)都是建筑在Document/View的基础之上. 2. Document: 3. View: 注:在MFC里头,一旦WM_PAINT发生,Framework会自动调用…
凝聚性强.组织化强的类库就是Application Framework.一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework. Application Framework是一组超级的类库,能够被称为Framework者必须是其中的类性质紧密咬合,互相呼应. 绝大部分类库,往往以一个或两个类,作为其它绝大部分类的基础,MFC也一样.CObject是万类之首,凡派生自CObject者,得以继承数个面向对象重要性质,包括RTT…
转自:http://tieba.baidu.com/p/252804018 访问应用程序的其它类 获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd -在CChildFrame中可用GetParentFrame() -在其它类中用AfxGetMainW…
1.其实Document/View不是什么新东西,Xerox PARC实验室是这种观念的滥觞.它是Smalltalk环境中的关键性部分,在那里它被称为Model-View-Controller(MVC).其中的Model就是MFC的Document,而Controller相当于MFC的Document Template. 2.Document在MFC的CDocument里头被实例化.CDocument本身并无实际用途,他只是提供一个空壳.你应该从它派生一个自己的类,然后改写负责文件读写操作的Se…
第八章 Document-View 深入探讨(总结) 1.Document Document 在MFC 的CDocument 里头被具体化.CDocument 本身并无任何具体数据,它只是提供一个空壳.当你开发自己的程序,应该从CDocument 衍生出一个属于自己的Document 类别,并且在类别中声明一些成员变量,用以承载(容纳)数据.然后再(至少)改写专门负责文件读写动作的Serialize 函数.应为他派生至CObject,所有它有CObject 所支持的一切性质,包括执行时期型别信息…
本文来自网易云社区 作者:汪洋 这时候还没完,又有两个问题引出来了. 按照上面的配置,第三方库 antd 竟然也被编译了,导致样式失败. react中,一旦包裹了子组件,子组件没办法直接使用 styleName. 第2个问题,还好解决,查了下 react-css-modules 资料,子组件中通过props获取       const template = (        <div className={this.props.styles['loadingBox']}>           …
MFC 类别主要可分为下列数大群组: ■ General Purpose classes - 提供字符串类别.数据处理类别(如数组与串行),异 常情况处理类别.文件类别...等等. ■ Windows API classes - 用来封包Windows API,例如窗口类别.对话框类别. DC 类别...等等. ■ Application framework classes - 组成应用程序骨干者, 即此组类别, 包括 Document/View.消息邦浦.消息映射.消息绕行.动态生成.文件读写…
创建的MFC应用程序名为:wd,那么: 一.wd.h解析 // wd.h : main header file for the WD application // #if !defined(AFX_WD_H__89BE48D2_F377_4DF1_8C44_4D7372A61CE0__INCLUDED_) #define AFX_WD_H__89BE48D2_F377_4DF1_8C44_4D7372A61CE0__INCLUDED_ //////////////////////////////…
百度云及其他网盘下载地址:点我 编辑推荐 <深入浅出MFC>内含光盘一片,书中所有原始码与可执行文件尽在其中. 作者简介 侯俊杰,先生不知何许人也,闲静少言,不慕荣利.好读书,求甚解:每有会意,击节高歌,欣然忘食.嗜咖啡,妻严,不能常得.亲旧知其如此,或备而礼之,或置而招之:造饮辄尽,期在必快.既快而退,曾不吝去留.善善恶恶,贤贤贱不肖.曲高和寡,直言罪人,晏如也.胸有点墨,心无城府.常著文章白娱,颇示己志.忘怀得失,以此自终. 目录 第0章 你一定要知道(导读)这本书适合谁你需要什么技术基础…
C++(MFC) 1.关联变量(与控件关联): (1)一组单选按钮:需要将第一个单选按钮的Group选项设为true,则单选按钮就为一组(组框为标示作用).选中第一个则为0,第二个为1,依次类推(P292). (2)数据交换:程序中需要调用UpdateData(bool)完成.参数为true(默认)则从控件获得变量值:参数为false则用变量值初始化控件(P295). 注:对于OK按钮,OnOK()函数会自动调用UpdateData(), 2.自己编写的.h文件中用到MFC自动生成的类,包含头文…
关于MFC绘图功能入门 创建Dialog based MFC工程    打开Resource view 下的Dialog主界面 添加Picture control控件,为此控件添加CStatic的control变量m_pic 自创一个函数paint(); 用来在划定的Picture 控件中绘图; 函数定义如下 , 一个参数类型为CDC另一个为CRect void project_name::paint(CDC *pDC, CRect &rect) { } 函数的调用方法: CRect rect;…
From: https://www.codeproject.com/articles/1076854/overcoming-the-list-view-threshold-in-sharepoint-c Introduction When your CAML queries start to hit the list view threshold, you'll think it will never work. It can work, but it's tough. This article…
Android 自定义title 之Action Bar 2014-06-29  飞鹰飞龙...  摘自 博客园  阅 10519  转 25 转藏到我的图书馆   微信分享:   Action Bar是在窗口上指示用户位置的组件,同时给用户提供导航和操作.使用Action Bar可以让你的应用在不同配置的屏幕上看起来比较一致.在开始之前,先了解一些相关的术语: Action Bar有以下几项关键功能: 1)为你的App提供一个装饰处,同时也可以让用户知道自己的所在位置: 2)让一些重要的操作以…
Action Bar是在窗口上指示用户位置的组件,同时给用户提供导航和操作.使用Action Bar可以让你的应用在不同配置的屏幕上看起来比较一致.在开始之前,先了解一些相关的术语: Action Bar有以下几项关键功能: 1)为你的App提供一个装饰处,同时也可以让用户知道自己的所在位置: 2)让一些重要的操作以一种可预见的方式变得突出并且可访问(比如搜索): 3)支持风格一致的导航和视图切换手段: ActionBar的API首先在Android3.0(API 11)中被加入,但是可以使用S…
(一)UpdateAllViews() 与 Invalidate()的区别 UpdateAllViews()是在DOC/VIEW结构中,当一个视图的数据改变后,通知所有视图作相应的改变,和重画毫无关系. Invalidate()是使窗口无效,使系统向其发WM_PAINT消息,使的程序的OnPaint被调用重画客户区. 而UpdateAllViews()是文档与视之间的联系,调用从它会使程序与此文档相关的所有视的UpdateView被调用至于是否重画以及怎么画是由各视的UpdateView来决定的…
无论你的项目是否用到了Swing技术,我都要说,Swing是一个设计优秀的Java包,它充满了大师的智慧.假设你学了Java却连一个Button还不会写,就象你学习Visual Basic却不会用Button,那可绝对是不能被原谅的.Swing技术的应用已经在国外大行其道,因为java的免费.易学以及大家对于java技术的充分信赖,好多公司早早的就把应用程序的一切,从后台服务到前台人机交互界面,统统移到了java开发上.Swing出现了快10年了,凭借其先进的设计思想,一直未曾落后于哪种语言的界…
引言: 写前端UI的朋友们也许都遇到过这样的问题:我们需要实现这样一个需求,在一个父级元素中隐藏一个可能过长的文本:   这个文本可能是单行的:   也可能是多行的:   下面我就给大家展示如何简单或优雅地实现这种需求   单行文本溢出的省略   先上代码 <div style = 'width:400px; height:40px; border:1px solid red;'> <p style='overflow: hidden; text-overflow: ellipsis;…
写前端UI的朋友们也许都遇到过这样的问题:我们需要实现这样一个需求,在一个父级元素中隐藏一个可能过长的文本:   这个文本可能是单行的:   也可能是多行的:   下面我就给大家展示如何简单或优雅地实现这种需求   单行文本溢出的省略   先上代码 <div style = 'width:400px; height:40px; border:1px solid red;'> <p style='overflow: hidden; text-overflow: ellipsis; whit…
本文编译自J2EE的相关文档.MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征.这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易. MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小.MVC结构本来是为了将传统的输入(input).处理(processing).输出(output)任务运用到图形化用户交互模型中而设计的.但是,将这些概念运用于基于Web…
转载地址:http://blog.csdn.net/akof1314/article/details/5618454 目录(?)[-] Public Methods Protected Methods The CTabView class simplifies the use of the tab control class (CMFCTabCtrl ) in applications that use MFC's document/view architecture. class CTabbe…
初次接触Navisworks Api  .NET 的二次开发.主要是研究了一下.关于NavisWorks 结构树的加载. void LoadModel() { //清空当前的结构树信息 treeView1.Nodes.Clear(); //当前加载的模型 Document doc = Autodesk.Navisworks.Api.Application.ActiveDocument; //循环现有模型 foreach (var documentModel in doc.Models) { va…
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度.(什么是行内,就是直接在html标签上写样式) 小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候…
本文为微信公众号[深度学习大讲堂]特约稿,转载请注明出处 虚拟框架杀入 从发现问题到解决问题 半年前的这时候,暑假,我在SIAT MMLAB实习. 看着同事一会儿跑Torch,一会儿跑MXNet,一会儿跑Theano. SIAT的服务器一般是不给sudo权限的,我看着同事挣扎在编译这一坨框架的海洋中,开始思考: 是否可以写一个框架: import xx.tensorflow as tensorflow import xx.mxnet as mxnet import xx.theano as th…
1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的增删改查操作,不同于我们熟悉的关系数据库中的操作.在关系数据库中,比如MySQL,我们通常使用SQL语句对数据库进行增(INSERT)删(DELETE)改(UPDATE)查(SELECT).MongoDB在对数据进行操作过程中,使用的是Document进行数据操作.在对数据库进行操作的时候,使用Do…
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度. 小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性.注意如果不是写在行内styl…