在MFC中可以创建多种类型的窗口程序,如对话框程序.单文档结构程序(非文档/视图结构).单文档(文档/视图结构)以及多文档视图结构程序等. 在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对话框的程序不支持视图类,有些功能实现起来会麻烦许多.此时我们可以使用CFormView作为基类来创建单文档(非文档/视图结构)和单文档(文档/视图结构)的程序. 一.使用MFC向导创建程序 (1)单文档(文档/视图结构) (2)不需要状态栏和工具栏 (3)使用CFormView作为基类…
在MFC中可以创建多种类型的窗口程序,如对话框程序.单文档结构程序(非文档/视图结构).单文档(文档/视图结构)以及多文档视图结构程序等. 在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对话框的程序不支持视图类,有些功能实现起来会麻烦许多.此时我们可以使用CFormView作为基类来创建单文档(非文档/视图结构)和单文档(文档/视图结构)的程序. 一.使用MFC向导创建程序 (1)单文档(文档/视图结构) (2)不需要状态栏和工具栏 (3)使用CFormView作为基类 (4)使用向…
在视图应用程序中,应用程序的数据由文档对象代表,数据的视图由视图对象代表.MFC的Cdocument类是文档对象的基类,Cview类是视图对象的基类.应用程序的主窗口,其操作功能在MFC的CframeWnd和CMDIFrameWnd类中实现,已经不再以消息处理为工作焦点了,主要用作视图.工具栏以及其他用户界面对象的容器. 单文档界面应用程序只支持打开一个文档. 1.  文档.视图基础知识.   图1展示了SDI文档.视图应用程序的示意图.框架窗口是应用程序的顶层窗口,通常带有WS_OVERLAP…
VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html   上一讲中讲了VS2010和MSDN如何安装,相信大家都已经安装好了.这一讲给大家一个简单的例子,演示如何生成单文档应用程序框架. 解决方案与工程 鸡啄米在VS2010的使用介绍中已经讲了解决方案与工程的概念,这里再重提一下.每个应用程序都作为一个工程来处理,它包含了头文件.源文件和资源文件等,这些文件通过工程集中管理.…
很多做软件开发的人都有一种对事情刨根问底的精神,例如我们一直在用的MFC,很方便,不用学太多原理性的知识就可以做出各种窗口程序,但喜欢钻研的朋友肯定想知道,到底微软帮我们做了些什么,让我们在它的框架下可以简单的写程序.本文开始就跟大家分享一位同行前辈写的MFC核心机制分析(稍作整理),语言朴实易懂,在读完此深入浅析的剖析系列后,相信留给大家的是对MFC运行机制的深入理解. MFC六大核心机制概述 我们选择了C++,主要是因为它够艺术.够自由,使用它我们可以实现各种想法,而MFC将多种可灵活使用的…
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenGL程序中的0x00000000 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突 void createVBO(GLuint *vbo,int size) { glGenBuffers(,vbo);//该行代码出错,呜呜 glBindBuffer(GL_ARRAY_B…
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…
MFC的AppWizard可以生成三种类型的应用程序:基于对话框的应用.单文档应用(SDI)和多文档应用(MDI).   一般情况下,采用文档/视结构的应用程序至少应由以下对象组成:       1.应用程序是一个CwinApp派生对象,它充当全部应用程序的容器.应用程序沿消息映射网络分配消息给它的所有子程序.       2.框架窗口是一CfrmeWnd派生对象.       3.文档是一个CDocument派生对象,它存储应用程序的数据,并把这些信息提供给应用程序的其余部分.       4…
文档/视图概述 为了统一和简化数据处理方法,Microsoft公司在MFC中提出了文档/视图结构的概念,其产品Word就是典型的文档/视图结构应用程序 MFC通过其文档类和视图类提供了大量有关数据处理的方法 分为数据的管理和显示,文档用于管理和维护数据,视图用来显示和编辑数据 什么是文档 文档的概念在MFC应用程序中的适用范围很广,一般说来,文档是能够被逻辑地组合的一系列数据,包括文本.图形.图象和表格数据. 一个文档代表了用户存储或打开的一个文件单位.文档的主要作用是把对数据的处理从对用户界面…
一.VC++与MFC 讲VC++免不了要提MFC,MFC全称Microsoft Foundation Classes,也就是微软基础类库.它是VC++的核心,是C++与Windows API的结合,很彻底的用C++封装了Windows SDK(Software Development Kit,软件开发工具包)中的结构和功能,还提供了一个应用程序框架,此应用程序框架为软件开发者完成了一些例行化的工作,比如各种窗口.工具栏.菜单的生成和管理等,不需要开发者再去解决那些很复杂很乏味的难题,比如每个窗口…
如何在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即可查看str的属性,如下图所示: 2.如何查看对象某个属性的帮助文档 ?如要查看str的split属性,可以用__doc__, 使用方法为print(str.split.__doc__),如下图所示: 3.查看对象的某个属性还可以用help函数,使用方法为help(str.split),如下图所示:…
文档类 1 相关类    CDocument类-父类是CCmdTarget类,所以,文档类也能够处理菜单等               命令消息. 作用保存和管理数据.    注意事项:怎样解决断言错误    2 在视图中显示文档中的数据     2.1 CView::OnInitialUpdate         作用初始化视图,在附加文档之后.显示之前.由框架调用. 2.2 CView::GetDocument         获取与视图相关的文档     2.3 CFrameWnd::In…
用VC++MFC做文本编辑器(单文档模式) 原来做过一个用对话框实现的文本编辑器,其实用MFC模板里面的单文档模板也可以做,甚至更加方便,适合入门级的爱好者试试,现介绍方法如下: < xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 1,首先新建一个工程,选择MFC AppWizard(exe),定名字为:textview_1,程序类型选择单个文档,其他均默…
在文档试图应用程序,有时需要在工作区切换试图,以下就是如何切换试图了 .创建要切换的视图类,同时把构造函数,Create函数改变为public .在需要切换试图的动作响应中,加入切换代码,一般是在CMainFrame的菜单响应中加: void CMainFrame::On32771() { // TODO: Add your command handler code here CView *pOldActiveView=GetActiveView();//旧视图 CMyView *pNewAct…
在命令行模式下查看Python帮助文档---dir.help.__doc__   1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即可查看str的属性,如下图所示: 2.如何查看对象某个属性的帮助文档 ?如要查看str的split属性,可以用__doc__, 使用方法为print(str.split.__doc__),如下图所示: 3.查看对象的某个属性还可以用help函数,使用方法为help(str.split),如下图所示:…
窗体创建完成,接下来我们讲讲控件的使用 首先在CFormView窗体下选项卡的成员变量,这里我选择MFC下的选项卡类库:CMFCTabCtrl class CtabView : public CFormView { ...... ...... public: CMFCTabCtrl m_tab; } 在初始化中动态创建选项卡并设置选项卡的样式,这里我们使用了Creat函数,他的原型是 BOOL Create(Style style, const RECT& rect, CWnd* pParent…
开始学习OpenGL由于有一段时间,但是glfw只有窗口区,虽然通过某种手段(移步这里)可以加入工具栏,但仍然无法作为一个标准的GUI,而直接在MFC或Qt里面使用OpenGL API感觉有诸多制肘,各有利弊,所以打算将其嵌入GUI框架,此处以MFC为例 参考博文:https://blog.csdn.net/sunbibei/article/details/51783783 1.准备工作 由于要通过CreateProcess创建子进程的方式调用第三方exe程序,所以有必要知道创建的子进程信息,此…
1.CArchive类保存内存数据 2.CAchive类重载了>>与<<操作符,类似C++文件流 3.在OnNewDocument中通过SetTitle设置标题 4.字符串资源中IDR_MAINFRAME的第二个子串是文档标题 5.在App类初始化函数中将标题传进去 6.GetDocString获取字符串资源值 7.IDR_MAINFRAME字符串资源含义: 8.Doc类中的Serialize是保存/加载数据的函数 9.保存后打开同一文件不会进入Serialize函数(MFC认为文…
第一步:准备2个视图类(如CTViewOne, CTViewTwo) 第二步:在CMainFrame类的头文件中添加数据成员变量: //MainFrm.h protected: CSplitterWnd m_wndSplitter; 第三步:重载CMainFrame类的OnCreateClient函数: BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: 在此添加专用代…
主要就一句话: ShellExecute(NULL,L"Open",path,NULL,NULL,SW_SHOWMAXIMIZED); 常用的显示方式是SW_SHOWNORMAL和SW_SHOWMAXIMIZED. 路径path的设置: 绝对路径直接写就是了. 相对路径: 最简单的找现在程序的运行路径: ShellExecute(NULL,L"open",L".\\res\\help.chm",NULL,NULL,SW_SHOWMAXIMIZED…
 最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如下: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <!-- If the font still has no gener…
LINUX6.3下RHCS的安装及集群的配置文档 环境: 目前要给华为E6000系列的两个刀片安装RHCS,每一块刀片有两个业务网口和一个管理网口,但是看不见不物理网卡,而是连接到刀片自身携带的一个交换机板卡.两台刀片主要是实现服务器地址的漂移,即运行服务的机器出现故障,服务可以顺利切换到另外一台,当然也可以添加其他资源(比如apache,脚本)实现集群功能,不过内容都相同,只是在配置界面的时候添加的资源不一样. 刀片1,2的hosts文件: 172.16.32.1     host1 172.…
近期,有一个朋友做B端,服务器存了大量的金融类数据,很多都是pdf文档,他现在的做法是,先将pdf文档转换成flash,再放到浏览器上给用户浏览,但是他告诉我,这种体验太差了,而且很好资源,空间已经快不够了,向我咨询有没有可以直接读取pdf文档的,我之前也没做过,于是,我简单搜索了一下,还真是有,下面给大家整理出来,供大家参考. pdf.js是一款开源的pdf文档读取解析插件,据说在HTML5下诞生的,对于主流的浏览器基本都支持. 官网GitHub地址如下:https://github.com/…
_Worksheet ws;Range range; range = ws.GetUsedRange();//获得Worksheet已使用的范围range = range.GetRows();   //获得总行数(LPDISPATCH类型)long UsedRows = range.GetCount(); //即可获得已使用的行数了. 获得列数也是一样的方法,把GetRows()改为GetColumns即可. 注:1.首先程序中应该包含CExcel.h和CExcel.cpp: 2.有的版本中不是…
前天写了一个基于tcp协议的服务器客户端程序,今天写了一个基于UDP协议的,由于在上一篇使用TCP协议的服务器中注释已经较为详细,且许多api的调用是相同的,故不再另外注释. 使用UDP协议需要注意几点: ①UDP是面向无连接的,客户端在于服务器通信前无须建立连接,且UDP协议不保证发出的消息是否被收到,是否有丢失. ②UDP的接收和发送信息使用recvfrom()与sendto()函数 代码如下: 服务器端: #include <iostream> #include "Ws2tcp…
转载:http://blog.csdn.net/hediping9811/article/details/23341387 (1)用Word编辑好帮助文档,并保存为网页格式,如mhtml格式. (2)用EasyCHM软件生成chm文档.生成方法很简单的,相信你能很快搞定的!当然用其它方法制作CHM文档也可以了. (3)在MFC中添加一个菜单或按钮,添加相应的响应函数. (4)在函数体内用 ShellExecute(NULL,"open",".\\help.chm",…
//在将xml文档传输出去时,利用Transformer中的setOutputProperty方法 TransformerFactory trans = TransformerFactory.newInstance(); Transformer form = trans.newTransformer(); form.setOutputProperty(OutputKeys.ENCODING, "gbk");//将xml文档编码设置为gbk Source xmlSource=new DO…
一.DOM简介 Document Object Model 文档对象模型 DOM包含了所有HTML元素的属性和方法,以及访问他们的方式: #二.DOM节点 #1. 什么是节点? HTML中所有的元素都是一个节点 整个文档是文档节点 所有的标签都是元素节点 标签内的属性是属性节点 标签内的文本是文本…
先在我们的选项卡可以说能用了,每个标签页都能点进去,但是这还远远没到能用的地步,比如说你把窗口最大化后. 立马就露出马脚了,所以这篇我们要先讲讲tabctrl的最基本的功能实现 改变选项卡大小 上图的原因就是主窗口在改变的大小的时候没有通知选项卡让他跟着主窗口一起变,所以我们现在通知选项卡一下 添加ON_WM_SIZE消息,实现函数 void CtabView::OnSize(UINT nType, int cx, int cy) { //CFormView::OnSize(nType, cx,…
控件讲了这么久,其实我的程序有两个Bug不知道大家有没有发现,这两个Bug都不会报错,对程序运行来说都没有阻碍,但是这种Bug对整个代码来说是一个很大的安全隐患. 什么是内存泄漏 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果. 简单的说就是new完之后没有delete.当然,内存泄漏还不止这一点点.但是对于新手来说,大部分的内存泄漏都是因为new的原因 照成的. 内存泄漏对程序的影响…