C++/VC/MFC
hln24477932
这个作者很懒,什么都没留下…
展开
-
ActievX控件属性返回值总是为TRUE
现象:MFC制作ActievX控件时 属性为VARIANT_BOOL时 get的返回值传递到客户端总是为TRUE。原因:传递过程中MFC做了转换,但是VARIANT_BOO为short型,MFC确当成了DWORD来转换,所以导致转换后总为TRUE。(VC2003下参考oledisp1.cpp中1100行)。办法:将get的返回值该为 DWORD型。另外set的值与VARIANT原创 2007-08-30 15:52:00 · 474 阅读 · 0 评论 -
白乔原创:VC之美化界面篇
本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:1. 大致了解MFC框架的基本运作原理;2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制;3. 熟悉OOP理论和技术;本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。 1. 美化界面之开题篇相信使用过《金山毒霸》、《瑞星杀毒》软件的读者应该还转载 2008-10-19 09:50:00 · 337 阅读 · 0 评论 -
MFC基础知识总结(1)
1.列表视图控件: ClistCtrl类的用法: 1常规操作函数:它们可以完成向列表视图中插入新 条目或新列等操作。 ISubItem-指定条目子索引项 BOOL DeleteAllItems()删除列表控件中所有条目 int InsertColumn(int nCol,const LVCOLUMN * pColum)插入新列 操作成功返回新列索引 nCol-----指原创 2008-10-19 09:55:00 · 635 阅读 · 0 评论 -
MFC学习总结 (67个技巧) dlg 上建立View
1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码:m_tabsheet.Create(this, WS_CHILD | WS_VISIB原创 2008-10-19 09:46:00 · 2575 阅读 · 1 评论 -
MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序
MFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用, 然后调用WindowProc()函数3.WindowProc()原创 2008-10-19 09:49:00 · 450 阅读 · 0 评论 -
MFC基础知识总结(2)
4.数据库 ODBC动态添加数据库:Lhwy工程 CDatabase类 public: CDatabase m_DB; extern CLhwyApp theApp; #include //由于 VC的缺省库文件中不包含 SQLConfigDataSource()函数,因此使用该函数之前需要将 odbcinst.h文件包含在工程的头文件中 BOOL CLhw原创 2008-10-19 09:56:00 · 562 阅读 · 0 评论 -
DEBUG版本与RELEASE版本的区别
我这有一点DEBUG和RELEASE的问题的总结,借花献佛了 在VC中当整个工程较大时,软件时常为出现在DEBUG状态下能运行而在RELEASE状态 下无法运行的情况。由于开发者通常在DEBUG状态下开发软件,所以这种情况时常 是在我们辛苦工作一两个月后,满怀信心的准备将软件发行时发生。为了避免无谓 的损失,我们最好进行以下的检查: 1、时常测试软件的两种版本。 2、不要轻易将问题归结为DE转载 2008-10-19 09:52:00 · 647 阅读 · 0 评论 -
MFC基础知识总结(3)
CString类的用法: IsEmpty()//字符串是否为空 Empty()//置空 Find( )//查找字符串 此为查找空格 GetAt(0)//得到第一个字符 SetAt( , )// WordSet.m_Word.SetAt( 0, WordSet.m_Word.GetAt( 0 ) - 32 ); 将第一个字母转换为大写状态 MakeLower()//转化为小写状态原创 2008-10-19 09:57:00 · 670 阅读 · 0 评论 -
Sigslot介绍
最近在开发一个基于libjingle开源的IM系统,里面有一个其类为has_slots,搜索了一下其资料发现是一个很好用的C++库,先对其简单介绍一下。 1. 简介 sigslot是一个线程安全、类型安全,用C++实现的sig/slot机制(sig/slot机制就是对象之间发送和接收消息的机制)的开源代码库。是一个非常好用的库,只有一个头文件sigslot.h。转载 2010-03-28 11:23:00 · 428 阅读 · 0 评论 -
boost/shared_ptr 用法总结
头文件: "boost/shared_ptr.hpp"几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了控制被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计费降为零,没有对象再需要这个共享的对象,这个对象就自动被销毁了。引用计数智能指针可以分为插入式(intrusive)和非插入式(non-intrusive)两类。前者要求它所管理的类提供明确原创 2010-03-28 11:44:00 · 697 阅读 · 0 评论 -
VC程序员常用工具篇
过年了,事情可以暂时放一下了。总结一下很有必要。又看到外面饭馆写着“岁末收工,初六开炉“了。好了,废话不多说,接着上篇继续评点程序员常用工具。当然还得请朋友们留言,好做继续的整理和补充,谢谢!顺祝大家新年好!1. IDE:钟情于VC++6.0,但是也感觉Visual Studio2008和2010的强大,可能迟早得转到VS高版本上来。在安装VC++6.0的时候记得安装sp6补丁和msdn(转载 2012-02-09 17:42:49 · 252 阅读 · 0 评论 -
Windows窗口相关的一些概念解释
转自:http://blog.sina.com.cn/s/articlelist_1224293203_2_1.html 最近工作中关于UI开发方面的东西多了些,碰到问题的时候查阅了很多资料,对Windows窗口的一些概念的理解也慢慢深入了很多。在这篇中把一些比较容易混淆和相关资料比较少的概念做一个总结,可能你用到这些概念的几率不大,但是一旦你遇到相关问题,解决起来还真是要费一番功夫转载 2012-02-09 16:57:55 · 318 阅读 · 0 评论 -
Windows API-GDI入门基础知识详解(1)
1什么是GDI? GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。 在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需转载 2012-05-14 18:18:13 · 413 阅读 · 0 评论 -
Windows API-GDI入门基础知识详解(2)
1回顶部 现在我们对GDI的基础概念有了一定的了解,下面我们将对GDI一些常用的函数进行学习。TextOut函数 TextOut函数的作用是把指定的字符串输出在我们指定的屏幕位置上。函数原型:BOOL TextOut( HDC hdc, //设备描述表句柄 int nXStart, //输出的x轴水平位置 i转载 2012-05-14 18:19:21 · 328 阅读 · 0 评论 -
CListCtrl使用技巧
以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管原创 2008-10-19 09:48:00 · 430 阅读 · 1 评论 -
字符串转换_BSTR/LPSTR/LPWSTR/Char
一、BSTR、LPSTR和LPWSTR 在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类 型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。 那么什么是BSTR、LPSTR以及LPWSTR呢? BSTR(Basic ST转载 2007-12-10 15:36:00 · 475 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(三)文档
1、文档类CDocument 在"文档/视图"架构的MFC程序中,文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分。CDocument类对文档的建立及归档提供支持并提供了应用程序用于控制其数据的接口,类CDocument的声明如下: /////////////////////////转载 2007-08-30 16:53:00 · 480 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(二)文档模板
文档模板管理者类CDocManager 在"文档/视图"架构的MFC程序中,提供了文档模板管理者类CDocManager,由它管理应用程序所包含的文档模板。我们先看看这个类的声明: /////////////////////////////////////////////////////////////////////////////转载 2007-08-30 17:00:00 · 455 阅读 · 0 评论 -
CFileDialog的扩展名问题
使用MFC的CFileDialog类保存文件时,遇到了一个小小的问题,当我在文件名栏中写入带扩展名的名字时,CFileDialog不判断该扩展名是否符合我的要求。比如我规定的扩展名是.vvt。当输入a.bmp时我预期想得到的文件名应该是a.bmp.vvt。但是系统依然给我返回a.bmp.vvt。(word实现了这个功能,大家可以实验一下,咳咳)怎么办?我在点击OK的时候修改了不就完了。于是原创 2007-08-30 15:41:00 · 1042 阅读 · 0 评论 -
删除文档中的菜单
单文档:在MainFrame::OnCreate的最后添加 SetMenu(NULL);多文档:可在子窗体的WM_MDIACTIVATE的消息响应函数中加入 AfxGetMainWnd()->SetMenu(NULL)原创 2007-08-30 15:49:00 · 365 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(四)视图
视图类CView 在MFC"文档/视图"架构中,CView类是所有视图类的基类,它提供了用户自定义视图类的公共接口。在"文档/视图"架构中,文档负责管理和维护数据;而视图类则负责如下工作: (1) 从文档类中将文档中的数据取出后显示给用户; (2) 接受用户对文档中数据的编辑和修改; (3) 将修改的结果反馈给文档类,由文档类将修改后的内容保存到磁盘文件中。 文档负责了数据真正在永久介质转载 2007-08-30 16:57:00 · 479 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(一)基本概念
引言 MFC引入了"文档/视图"结构的概念,理解这个结构是编写基于MFC编写复杂Visual C++程序的关键。"文档/视图"中主要涉及到四种类: (1)文档模板:class CDocTemplate; // template for document creationclass CSingleDocTemplate; // SDI supportclass CMultiDocTemplate转载 2007-08-30 16:51:00 · 496 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(六)相互关系
1、模板、文档、视图、框架的关系 连载1~5我们各个击破地讲解了文档、文档模板、视图和框架类,连载1已经强调这些类有着亲密的内部联系,总结1~5我们可以概括其联系为: (1)文档保留该文档的视图列表和指向创建该文档的文档模板的指针;文档至少有一个相关联的视图,而视图只能与一个文档相关联。 (2)视图保留指向其文档的指针,并被包含在其父框架窗口中; (3)文档框架窗口(即包含视图转载 2007-09-06 10:03:00 · 569 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(五)框架
从前文可知,在MFC中,文档是真正的数据载体,视图是文档的显示界面,对应同一个文档,可能存在多个视图界面,我们需要另外一种东东来将这些界面管理起来,这个东东就是框架。 MFC创造框架类的初衷在于:把界面管理工作独立出来!框架窗口为应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的窗口。一个应用程序启动时会创建一个最顶层的框架窗口。 MFC提供二种类型的框转载 2007-09-06 10:00:00 · 532 阅读 · 0 评论 -
MFC的SDI程序的用户命令的处理顺序
1.用户命令处理顺序图2.OnCmdMsg的代码BOOL CFrameWnd::OnCmdMsg(...){ CView* pView = GetActiveView(); if(pView != NULL && pView->OnCmdMsg(...)) return TRUE; if (CWnd::O转载 2007-09-06 10:15:00 · 471 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之(七)实例剖析
为了能够把我们所学的所有知识都在实例中得以完整的体现,我们来写一个尽可能复杂的"文档/视图"架构MFC程序,这个程序复杂到: (1)是一个多文档/视图架构MFC程序; (2)支持多种文件格式(假设支持扩展名为BMP的位图和TXT的文本文件); (3)一个文档(BMP格式)对应多个不同类型的视图(图形和二进制数据)。 相信上述程序已经是一个包含"最复杂"特性的"文档/视图"架构MFC程序转载 2007-09-06 10:09:00 · 750 阅读 · 0 评论 -
了解CObject 和 CRuntimeClass
作者: 林水怒来源:zdnetCObject和CRuntimeClass是MFC中两个非常重要的类/结构,绝大部分MFC类都是以CObject做为基类, CRuntimeClass结构同CObject密不可分,了解它们对于深入理解MFC具有重要意义。 一、CRuntimeClass结构要理解CObject,我们先来看一下CRuntimeClass这个在MFC中至关重要的一个结构。每个从CObjec转载 2007-09-06 10:18:00 · 408 阅读 · 0 评论 -
VC++中进程与多进程管理的方法
进程 进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。在转载 2007-11-02 17:34:00 · 299 阅读 · 0 评论 -
Visual C++中的异常处理浅析
Visual C++提供了对C语言、C++语言及MFC的支持,因而其涉及到的异常(exception)处理也包含了这三种类型,即C语言、C++语言和MFC的异常处理。除此之外,微软对C和C++的异常处理进行了扩展,提出了结构化异常处理(SEH)的概念,它支持C和C++(与之相比,MFC异常处理仅支持C++)。 一个典型的异常处理包含如下几个步骤: (1)程序执行时发生错误; (2)以一个异常转载 2007-11-06 10:31:00 · 273 阅读 · 0 评论 -
Windows API-GDI入门基础知识详解(3)
1回顶部格式化输出 如果要使用TextOut函数在Windows应用程序中输出多行文字,我们就必须先取得字符的宽度和高度,通常我们在窗口消息处理函数中处理WM_CREATE消息的时候调用GetTextMetrics函数来获取他们,之所以放到WM_CREATE的部分调用,是因为当系统启动后,系统字体的大小就不会发生改变,我们只需要调用一次GetTextMetrics就可以了。具体方法如转载 2012-05-14 18:20:19 · 478 阅读 · 2 评论