
vc程序设计
文章平均质量分 82
wanxiaohong1350
这个作者很懒,什么都没留下…
展开
-
RapidXml原理和使用
在项目进行到快收尾时,我们伟大的测试小组提出我们现有的联系人保存时间太长,从1000条联系人中删除三条联系人需要15s左右,并且要求新的保存方案在5s内。5s?我希望可以在2s内保存。所以google了下tinyxml如果提高效率,很幸运地发现rapidxml。从rapidxml的官方网站下载了其源代码,并测试了下效率,发现其比tinyxml确实要快很多,在我现有机器上大约要快3倍。欣喜之转载 2013-01-16 10:51:32 · 1157 阅读 · 0 评论 -
VS系统通用快捷键
VS系统通用快捷键:1、自动排版(类似VC6中的Alt+F8) 编辑.格式化选定内容 Ctrl + K,Ctrl + F 根据周围的代码行,正确缩进选定的代码行。2、注释与去掉注释功能。编辑.注释选定内容 Ctrl + K,Ctrl + C 使用编程语言的正确注释语法将代码的当前行标记为注释。编辑.取消注释选定内容 Ctrl + K,Ctrl +转载 2012-05-26 11:36:44 · 500 阅读 · 0 评论 -
用VC资源动态链接库解决国际化问题
随着计算机应用的普及,应用软件跨国使用越来越频繁,如何实现应用软件的国际化,成为许多程序员关心的问题。这种国际化问题相对使用某一种语言的用户来说,就是本地化问题。本地化的含义比仅仅翻译菜单栏和对话框的文本内容要广泛得多,如特定文化背景的位图和图标对不同的人来说,可能会有不同的含义。在Windows系统中,应用程序开发者可以通过利用VC动态链接库,只用一套源代码就能简洁地支持多种文字。本文介绍用VC转载 2012-05-26 11:33:56 · 712 阅读 · 0 评论 -
MFC中如何在文档类或框架类中获得视类指针
1 对于多文档:1.1 在文档类中,用POSITION pos=this->GetFirstViewPosition();while(pos){ CView *pView=this->GetNextView(pos);}即可。1.2 在其他类中,把上面语句中this换成文档指针即可。1.3 在框架类中,要先取得文档对象,然后再使用上面的代码2 对于单转载 2012-05-26 11:32:12 · 610 阅读 · 0 评论 -
使用 MFC 串行化数据和 C++ 对象(一)
串行化数据 ——例子程序:Memo 创建一个新的单文档 SDI 应用,视图类选择 CFormView,以便用户可以在窗口中输入。 在界面中创建三个编辑框,然后再添加三个相应的编辑框变量。这三个变量是视图类的成员变量,为了交互数据,文档类中也要创建三个对应的变量。然后,文档类和视图类都要对数据成员进行初始化操作,在文档类中这个工作通常都在 OnNewDocument() 函数中进行。转载 2012-05-25 10:07:14 · 563 阅读 · 0 评论 -
虚拟列表控件
一、什么是虚拟列表控件虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。二、为什么使用虚拟列表控件我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据。现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录。通常有两种方法解决这个问题:1转载 2012-05-25 09:17:48 · 411 阅读 · 0 评论 -
CTreeView说明
(一)树控制的主要功能树控制和视(Tree Control&View)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的文本字符串和用于表示该数据项的图像,每个数据项下面均可包含各种子项,整个结构就象目录树一样。对于包含各种子项的数据项,可通过鼠标双击来展开或合拢,这可以通过控制树的不同风格来实现树转载 2012-05-25 09:16:56 · 1846 阅读 · 0 评论 -
VC常见问题与解决方案
如何抛出(throw)由CUserException派生的异常?当我试图捕获(catch)一个派生类异常时,我得到以下错误"error C2039:'classCMyException': is not a member of 'CMyException' 'classCMyException': undeclared identifier 'IsKindOf': cannot con转载 2012-05-25 09:16:13 · 511 阅读 · 0 评论 -
MFC 数据有效机制(DDV)
MFC提供了类CDataExchage 来实现对话框类与控件交换(DDX),该类还提供了数据有效机制(DDV)。 DDV_MaxChars void AFXAPI DDV_MaxChars( CDataExchange* pDX, CString const& value, int nChars ); 参数: pDX指向转载 2012-05-25 09:15:35 · 2701 阅读 · 0 评论 -
一个实用的 CToolBar 扩展类 CToolBarEx
我们知道,程序中的工具条是在CMainFrame中生成的,采用的类是CToolBar,使用起来很复杂。为此,对CToolBar的常用功能进行封装,生成了它的一个继承类CToolBarEx,大大简化了操作。本文参考了VCKBASE 以前发表的关于工具条的文章,在此先表示感谢!编译环境:Windows 2000 Server sp3(en) 、VC++6.0 sp5。先看使用方法: 先转载 2012-05-25 09:15:10 · 1516 阅读 · 0 评论 -
VC中TabCtrl用法实例
VC中TabCtrl用法实例在Delphi中TabCtrl的使用是比较方面的,但在VC中并不是怎么的好用;VC中的CtabCtrl类只提供了一些基本的控制与消息,而TabCtrl上的页面呈现还需我们用对话框来处理。下面我们就以例子的形式来讲述VC中CtabCtrl的相关用法,希望对你有一定的帮助。在VC中使用CtabCtrl主要经历如下步骤:1、建立一个基于对话框的应用程序转载 2012-05-25 09:13:32 · 715 阅读 · 0 评论 -
使用 MFC 串行化数据和 C++ 对象(二)
串行化处理 我们要串行化 CPhone 对象,把C++对象写入文件,所以需要在 CPhone 类的定义和实现文件中加入相应的串行化代码,首先要在 CPhone 头文件中加入一个 MFC 宏,这是串行化需要的宏,必须为它提供一个参数,也就是类的名字。// 串行化宏定义DECLARE_SERIAL(CPhone) 其次是声明串行化函数,这个原型是必须的,因为要串行化类 CPhone转载 2012-05-25 09:19:06 · 557 阅读 · 0 评论 -
CListCtrl使用详解
1。先来介绍REPORT类型的CListCtrl:首先使用下面的语句设置CListCtrl的style:DWORD SetExtendedStyle( DWORD dwNewStyle );其中LVS_EX_CHECKBOXES 表示添加CheckBoxLVS_EX_FULLROWSELECT 表示选择整行LVS_EX_GRIDLINES 表示添加表格线如果设置了LVS转载 2012-05-25 09:18:09 · 625 阅读 · 0 评论 -
一步步制作真彩工具条
例子程序最终效果图: 一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。最近终于有所发现,因此在这里将自己在制作真彩工具条方面的小经验介绍给大家,以期抛砖引玉。 在这里将介绍两个重点的内容,一个是制作真彩工具条的图形工具 Visual toolba转载 2012-05-25 09:14:50 · 390 阅读 · 0 评论 -
VC中更改选项卡控件(CTabCtrl)的背景颜色
要更改的每个选项卡,您必须使选项卡控件所有者绘制和使用 FillRect() 方法来填充选项卡的本身使用您创建和调用 SetBkColor() 方法之前的画笔矩形区域的背景色进行调用 TextOut() 方法,与文本要显示在选项卡上。第一次显示选项卡控件在资源编辑器中的属性,并选中样式选项卡,选择在"所有者绘制固定"复选框并保存您的工作。如果要在与 CreateWindow() 或 Creat转载 2012-05-25 09:14:05 · 3881 阅读 · 0 评论 -
实现ListCtrl控件中 数据项可编辑功能
实现ListCtrl控件中数据项可编辑功能编写:要实现ListCtrl可编辑功能,只要在响应鼠标双击事件时,获取List中当前鼠标所在的Iem和SubItem序号,并获取当前数据项的Point位置,然后在响应的位置即时生成一个编辑框,并将原来数据项中的内容写入到编辑框中等待编辑,最后将编辑过的内容再保存到数据项中。为了实现这个功能,我需要对CListCtrl和CEdit进行子类化。转载 2012-05-26 11:35:18 · 1213 阅读 · 2 评论 -
CRuntimeClass的作用详解
// Runtime class serialization codeCRuntimeClass* PASCALCRuntimeClass::Load(CArchive& ar, UINT* pwSchemaNum) //loads a runtime class description{ WORDnLen;//类名的长度 cha原创 2012-05-26 11:39:52 · 5270 阅读 · 0 评论 -
MFC操作ini文件方法
在我们的程序设计中经常需要对一些参数进行配置,配置好后还要在下一次启动仍然有效,那么一个有效的可行办法就是使用ini文件,也就是Windows初始化文件来保存一些我们的设置,然后让程序启动的时候从这个ini文件中读取相关配置。我们需要做以下的工作。 1.创建此ini文件,Windows对ini文件的操作有专门的函数,我们经常用的就是WritePrivateProfileString(转载 2013-01-16 10:31:32 · 1027 阅读 · 0 评论 -
应用程序——INI和XML配置文件
为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件有很多如INI配置文件,XML配置文件,还有就是可以使用系统注册表等。本文主要是为读者在实现读写INI配置文件模块之前,提供有关INI文件的格式信息。在早期的windows桌面转载 2013-01-16 10:25:20 · 849 阅读 · 0 评论 -
c语言字符输出格式化
符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%usigned -- char转载 2013-01-15 16:47:38 · 3781 阅读 · 0 评论 -
深入了解CCtrlView
转载自:http://blog.sina.com.cn/s/blog_67001b350100jmu0.html如果我们要将一个控件转换成视图类,我们一般会想到CCtrlView,用它实现的控件视图一般添加一个GetXXXCtrl函数,函数的作用是返回视图中控件的引用,如果在MFC程序中跟踪它的调用我们会发现它的实现是这样的(以CEdit控件为例)_AFXEXT_INLINE CEdi转载 2013-01-08 13:24:14 · 573 阅读 · 0 评论 -
未公开Windows API SHChangeNotifyRegister实现文件监控
本文转载自:http://blog.youkuaiyun.com/zengniao/article/details/6027004在Windows实现文件监控有三种方法,第一种是“虚拟文件系统驱动”方法,如windows 下的filemon,网上有很多关于他的分析。第二种方法是“HOOK API”方法,钩子技术。第三种方法是“消息机制”,从windows的文件通知消息获取系统的文件操作。但是这是文件操转载 2012-12-30 16:26:34 · 923 阅读 · 0 评论 -
CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
转载自csdn博客:http://blog.youkuaiyun.com/akof1314/article/details/5495956系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现CMFCShellTreeCtrl(CBCGPShellTree )和CMFCShellListCtrl(CBCGPShellList)快速构建资源管理器转载 2012-12-25 16:30:38 · 1209 阅读 · 0 评论 -
解决vs2010“创建或打开C++浏览数据库文件 发生错误”的问题"
这个问题也困扰了我好久,每次都跳出这个对话框,提示“请确保已安装Microsoft SQL Server Compact 3.5,并且没有其他应用程序正在访问文件。如果问题仍然存在,请删除文件并重新打开解决方案。”但是,电脑里面确确实实是已经装了Microsoft SQL Server Compact 3.5的呀。后来老老实实到网上下载了一个Microsoft SQL Server C原创 2012-12-24 14:18:11 · 15834 阅读 · 4 评论 -
解决vs2010出现一大堆链接错误的问题。
用vs2010新建一个mfc空工程,编译链接老是出现一大堆的链接问题。几次卸载重装问题依旧,非常苦恼。后来终于找到了解决办法。进入属性管理器:双击Microsoft.Cpp.Win32.user进入到属性页:将可执行目录,包含目录,库目录全部改成继承即可。原创 2012-12-24 13:53:10 · 1890 阅读 · 0 评论 -
VS2005项目中添加lib库以及代码中相对路径的问题
VS 2005项目中添加lib库 应用程序使用外部库时需要进行加载,两种库的加载本质上都是一样:提供功能和功能的定义。vs2005 c++ 项目设置外部库方法如下:1. 添加编译所需要(依赖)的 lib 文件 在“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。等同于“#pragma com转载 2012-11-20 10:30:57 · 508 阅读 · 0 评论 -
.h头文件 .lib动态链接库文件 .dll 动态链接库
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。.h .lib .dll三者的关系是:H文件作用是:声明函数接口DLL文件作用是: 函数可执行代码转载 2012-11-19 15:58:43 · 517 阅读 · 0 评论 -
有关VS2005的宏和环境变量设置
转载请注明出处,版权归作者所有 lyzaily@126.com yanzhong.lee 这篇文章主要写给那些以前没有用过VS2005的新手,同时也是自己学习经验的积累,高手就不用看了以免浪费您宝贵的时间。 我刚学习使用VS2005编写程序的时候,对于该工具的设置很不一头雾水,心里总有抵触的想法。用惯了VC6.0就不愿意更换自己的开转载 2012-11-19 16:32:03 · 822 阅读 · 0 评论 -
google svn 服务器使用(免费SVN服务器)
和咸鱼一起开源的泡泡堂(哈哈,都是他在开发,我忙得要死),更新到SVN,囊中羞涩的我在使用了GoogleSVN一段时间之后,那个鸡动啊,..1. 进入http://code.google.com/ 用Google帐户登录(推荐使用gmail邮箱)。然后点击>Project Hosting2. 进入>> http://code.google.com/hosting/ 然后点击>Create转载 2012-10-09 14:35:05 · 635 阅读 · 0 评论 -
PRINTDLG结构体详解
typedef struct tagPD{ DWORD lStructSize; HWND hwndOwner; HGLOBAL hDevMode; HGLOBAL hDevNames; HDC hDC; DWORD Flags; WORD nFromPage; WORD nToPage; WORD nMinPage; WORD nMax转载 2012-06-21 11:38:36 · 1855 阅读 · 0 评论 -
OnInitUpdate、OnUpdate、OnDraw与OnPaint!
---------------------------------------------------------------OnInitUpdate是VIEW的初始化 OnUpdate是文档多视时,响应其它视图的改变 OnDraw和OnPaint都是绘图。OnPaint调用OnDraw,并且调用OnPrepareDC -----------------------------转载 2012-05-26 11:32:28 · 463 阅读 · 0 评论 -
用控件聚合技术为FlexGrid增添PickList功能
摘要:本文主要介绍了一种通过控件聚合技术来为网格控件FlexGrid增添PickList功能的方法。 前言 在对数据库进行数据录入时,PickList功能能极大的方便用户,在dELPHI程序中的DBgrid控件就直接提供了PickList功能,但VB和VC下的DBgrid和MSFlexGrid却没有提供相应的功能,FlexGrid甚至连直接编辑网格的能力都没有提供。经过笔者的探转载 2012-05-25 09:18:47 · 666 阅读 · 0 评论 -
[转MSDN]虚拟列表(MFC)
虚拟列表控件Visual C++ 概念:添加功能虚拟列表控件虚拟列表控件指具有 LVS_OWNERDATA 样式的列表视图 (ListView) 控件。该样式启用控件来支持项数达到 DWORD(默认的项数只扩展到 int)。然而,该样式的最大便利是可以使内存中一次只有一个数据项子集。这使虚拟列表视图 (ListView) 控件可以将自己借给大型信息数据库使用,而转载 2012-05-25 09:17:32 · 1202 阅读 · 0 评论 -
深入浅出Visual C++动态链接库(Dll)编程之三:MFC规则DLL
第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限,文中难免有错误和纰漏,也热诚欢迎读者朋友不吝指正! 5.转载 2012-05-14 10:57:03 · 665 阅读 · 0 评论 -
深入浅出Visual C++动态链接库(Dll)编程之一:基本概念
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DL转载 2012-05-14 10:52:55 · 437 阅读 · 0 评论 -
VC++ 6.0下对配置设置文件的存取访问
在Visual C++ 6.0下对Windows配置设置文件的存取访问方法的详细介绍。 一、 引言 不论是对于程序开发人员还是软件应用人员,一定不会对扩展名为"ini"的文件感到陌生,不仅Windows操作系统将大名鼎鼎的win.ini作为记录当前系统状态,并根据其记录内容对系统进行配置的一种便捷的方法,而且众多的应用软件也广泛地使用该类型的配置文件来对软件进行记录、配置。本文转载 2012-05-14 10:50:36 · 661 阅读 · 0 评论 -
深入分析MFC 文档视图结构一
1 必备基础知识概述 1.1 MFC 文档视图结构程序结构总揽 当我们使用 MFC AppWizard 生成一个 MFC 程序,选用所有默认的设置(当然也是 Multiple Documents ,本文讨论主要基于 Multiple Documents ,对于 Single Document 情况仅以简单表述提及,皆因后者和前者很多相似相同之处,但前者更为复杂,并且更加常用。),假设你转载 2012-05-14 10:49:35 · 456 阅读 · 0 评论 -
深入了解CCtrlView
如果我们要将一个控件转换成视图类,我们一般会想到CCtrlView,用它实现的控件视图一般添加一个GetXXXCtrl函数,函数的作用是返回视图中控件的引用,如果在MFC程序中跟踪它的调用我们会发现它的实现是这样的(以CEdit控件为例)_AFXEXT_INLINE CEdit& CEditView::GetEditCtrl() const { return *(CEd转载 2012-05-14 10:38:18 · 427 阅读 · 0 评论 -
使用VC6.0实现窗口的任意分割(2)
四、CSplitterWnd的扩展 CSplitterWnd扩展话题是很多的,我们可以通过对原有方法的覆盖或者增加新的方法来扩展CSplitterWnd。我们在此仅举两个方面的例子。 4.1锁定切分条 当用户创建好分割窗口后,有时并不希望通过拖动切分条来调节窗口的大小。这时就必须锁定切分条。锁定切分条的最简单的方法莫过于不让CSplitterWnd来处理WM_LBUTTONDOWN,W转载 2012-05-14 11:22:27 · 479 阅读 · 0 评论 -
绘制VC表格控件
我们在利用Visual C++开发基于数据库的软件时,经常要使用大量的表格,而Visual C++中并没有提供相应的表格控件,因此需要我们程序员自己制作,本文将介绍一个简单的表格控件的制作全过程。其实,一张表格是由一系列的单元格排列在一个窗口中而构成的,所以,制作表格控件的最重要的一步是单元格类的设计。从最简单的角度出发,通过改造编辑框(Edit Box)来制作单元格类是最容易也是最适转载 2012-05-14 11:19:31 · 855 阅读 · 0 评论