
VC++
文章平均质量分 56
mannhello
穷则变,变则通,通则久。
展开
-
MFC中显示图片(静态、动态)(转)
(一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID)(二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest.对话框类为CTestDlg(一) vc picture控件非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现.步骤:先在资源里Import一转载 2009-09-02 11:01:00 · 29626 阅读 · 3 评论 -
StrToInt && StrToHex && IntToString && 编辑框格式
以前写过类似的函数,最近又用到了,简单总结一下,以备后用。 1 StrToInt 此函数将编辑框中输入的字符串,如“1001”,转化为十进制数字,如1001。 int StrToInt(const char* str){ int num = 0; BOOL RIGHT = FALSE; if(str!=NULL) { const char* digit = str原创 2010-03-18 20:42:00 · 1327 阅读 · 0 评论 -
VC中的CArray的使用(转)
[转:http://hi.baidu.com/bcc222/blog/item/9f137981a85dcfdf9123d9b9.html] 关于 CArray类我们在使用vc进行比较复杂的编程时,经常需要用到复杂的数组结构,并希望能实现动态管理。由于C++并不支持动态数组,MFC提供了一个CArray类来实现动态数组的功能。有效的使用CArray类,可以提高程序的效率。MFC提供了一转载 2010-01-07 18:13:00 · 3433 阅读 · 0 评论 -
_CrtIsValidHeapPointer(pUserData)可能的原因(转)
I read the dbgheap.c and find the line 1132, its as follows:/** If this ASSERT fails, a bad pointer has been passed in. Itmay be* totally bogus, or it may have been allocated from anotherheap.* The p转载 2010-01-07 18:40:00 · 2183 阅读 · 0 评论 -
内存泄露调试技巧(转)-关于MFC下检查和消除内存泄露的技巧
摘要本文分析了Windows环境使用MFC调试内存泄露的技术,介绍了在Windows环境下用VC++查找,定位和消除内存泄露的方法技巧。 关键词:VC++;CRT 调试堆函数;试探法。 编译环境 VC++6.0 技术原理检测内存泄漏的主要工具是调试器和 CRT 调试堆函数。若要启用调试堆函数,请在程序中包括以下语句: #define CRTDBG_MAP_ALLOC #include #inclu转载 2010-01-10 21:07:00 · 873 阅读 · 0 评论 -
Visual Studio 2010中C++的四大变化(转)
在微软即将发布的Visual Studio 2010正式版中,其对C++语言做了一些修改,本文对此做了小结,与大家分享。Lambda表达式很多编程编程语言都支持匿名函数(anonymous function)。所谓匿名函数,就是这个函数只有函数体,而没有函数名。Lambda表达式就是实现匿名函数的一种编程技巧,它为编写匿名函数提供了 简明的函数式的句法。同样是Visual Studio中的转载 2010-04-12 18:10:00 · 593 阅读 · 0 评论 -
在MFC中获取窗口\视图句柄 &获取当前活动的CView
要找到某个CWnd对象的HWND,用GetSafeHwnd()。在窗口类中,有句柄的成员变量,可以直接访问: m_hWnd 在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。 在MainFrame里直接用this; 其它地方用 CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd; 想得到一个控件的的句柄GetDlgItem(ID…)->m_hWnd得到视图的句柄AfxGetMainWn原创 2010-06-01 10:06:00 · 6799 阅读 · 3 评论 -
VS中设置对话框字体
<br />VS中添加对话框资源的时候,有时候需要对话框设置相同或者不同的字体;<br />只需要选中对话框,右击属性TAB,有一个Font(Set),在这里可以进行简单的设置。原创 2010-06-21 10:35:00 · 1985 阅读 · 0 评论 -
MFC实现最近文件列表简介
<br />最近文件列表可以让你很方便地打开你以前曾经打开过的文件,那么,如何为自己的应用程序加入最近文件列表功能呢?<br />1 方法<br />1.1方法1:<br />在你新建工程的时候选择包含最近文件列表功能,也就是在 MFC AppWizard 的第 4 步的时候使 “How many files would you like on your recent file list?” 的<br />值不为 0 即可。<br />1.2方法2:<br />1.2.1在你的“文件”菜单中添加一个名称为“原创 2010-09-24 16:49:00 · 4036 阅读 · 0 评论 -
Prebuild Command line(Copy)
xcopy $(SolutionDir)/PreBuild/Share $(SolutionDir)/Debug/ /s /e /c /yxcopy $(SolutionDir)/PreBuild/Debug $(SolutionDir)/Debug/ /s /e /c /yxcopy $(SolutionDir)/PreBuild/Release $(SolutionDir)/Release/ /s /e /c /yxcopy $(SolutionDir)/PreBuild/Share原创 2010-11-09 11:28:00 · 925 阅读 · 0 评论 -
头文件预编译
对预编译头文件说明如下:所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。预编译头文件通过编译stdafx原创 2011-07-21 09:05:19 · 542 阅读 · 0 评论 -
__super in MFC
1 MFC中的 __super 和 java 中 super 类似,相当于基类的名称,都可以用来调用基类成员;2 __xxxx 类型的,是编译器或库内部使用的;3 __super是编译器关键词,是一个辅助工具,在多重继承和多级继承环境下很方便,当你需要调用基类成员时,不需原创 2011-09-27 15:50:07 · 1813 阅读 · 0 评论 -
Std::list iterator 的初始化和有效性判断
最近在使用Std::list 的时候,程序偶尔会在iterator 进行比较的时候崩溃。Review代码发现iterator的内存为0xcdcdcdcd, 很显然内存地址越界了。所以对Std::list iterator 的初始化和有效性的问题做了一些查找,很可惜没能搜集到原创 2011-09-28 11:10:26 · 10851 阅读 · 0 评论 -
关于软件开发中兼容win7注册表的若干思考
最近在做一个cs的项目,项目已经完成,后来发现不兼容windows7,经过一番整改,终于大功落成。现将心得体会写在这里。首先读取注册表要给用户管理员得权限。exe在Vista或Win7下不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作等;如何让exe以管理员权限运行呢,方法有两种,一个是直接修改exe属性;另一个是在程序中加入MANIFEST资源,下面分别介转载 2012-03-19 11:02:14 · 1401 阅读 · 0 评论 -
VC Debug(转)
为了更好地对程序调试,可以使用如下方法:使用断言、使用跟踪语句、使用异常和返回值。 一、断言 1、基本概念 断言是一种让错误在运行时候自我暴露的简单有效实用的技术。它们帮助你较早较轻易地发现错误,使得整个调试过程效率更高。 断言是布尔调试语句,用来检测在程序正常运行的时候某一个条件的值是否总为真,它能让错误在运行时刻暴露在程序员面前。使用断言的最大好处在于,能在更解决错误的转载 2009-12-22 22:01:00 · 988 阅读 · 0 评论 -
VC调试入门(转)
设置为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。为了增加调试信息,可以按照下述步骤进行:打开Project settings对话框转载 2009-12-22 21:53:00 · 1218 阅读 · 0 评论 -
为什么要学Win32及Win32程序框架
前言:最近在看侯捷的《深入浅出MFC》,在理解MFC时觉得必须要掌握win32,才能更好的理解MFC,才能写出更有用的程序。于是将自己对win32程序的理解写了下来,供朋友们参考。文中的两幅图是从书中截取的。 正文:现在有很多想走VC这条路的朋友,一开始就是MFC,虽然啃过一段时间书后,能写出一些小程序,但越往后你就会越觉得困难。我的一个网友昨天跟我聊天的时候说“TMD,MFC用转载 2009-11-18 16:55:00 · 505 阅读 · 0 评论 -
add/remove operation is impossible, because the code element 'Cxxx' is read only
How to solve “add/remove operation is impossible, because the code element Cxxx is read only”With Visual Studio 2008, we may meet “add/remove operation is impossible, because the code element C转载 2010-01-14 15:27:00 · 6297 阅读 · 1 评论 -
MFC中VALUE和CONTROL的区别(EDIT控件)
使用MFC的控件时,如EDIT控件,添加变量时有两种类型:VALUE和CONTROL;两种变量的区别如下:1 VALUE是有个变量和这个控件关联,例如编辑框,你输入东西后,updatedata(),就会把输入的东西传给这个变量;2 CONTROL是建了一个控件的实例,就像类实例,可以用控件的实例来控制该控件的行为,从而使用其方法。 这就是变量和类实例的区别。原创 2010-01-14 17:31:00 · 3899 阅读 · 0 评论 -
VC定时器的用法:SetTimer和Ontimer
Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。 Settimer是设置,Ontimer是响应Settimer消息的。SetTimer函数的用法1 )用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型UINT_PTR SetTimer(原创 2010-01-18 09:57:00 · 33558 阅读 · 1 评论 -
为何mfc不使用 dynamic_cast这样的基指针向派生类指针的显示转换?(转)
为何mfc不使用(或较少使用) dynamic_cast 原因在于: dynamic_cast 在c++中,如果你希望将一个基指针转换成一个派生类指针, 1)一般情况下, 这个基指针本来就是一个派生类的指针. 当转换为派生类指针的时候,可以访问这个派生类的特有的函数或者成员变量. 2) 如果这个基指针本来就不是一个派生类的指针,那么访问这个派生类的函数或成员变量的时候会出错!!! 访问不转载 2010-01-20 17:35:00 · 1688 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之相互关系(转)
深入浅出MFC文档/视图架构之相互关系2006-03-21 14:20作者:宋宝华出处:天极开发责任编辑:方舟 1、模板、文档、视图、框架的关系 连载1~5我们各个击破地讲解了文档、文档模板、视图和框架类,连载1已经强调这些类有着亲密的内部联系,总结1~5我们可以概括其联系为: (1)文档保留该文档的视图列表和指向创建该文档的文档模板的指针;文档至少有一个相关联的视图,而转载 2010-01-25 11:46:00 · 642 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之文档(转)
1、文档类CDocument 在"文档/视图"架构的MFC程序中,文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分。CDocument类对文档的建立及归档提供支持并提供了应用程序用于控制其数据的接口,类CDocument的声明如下://///////////////////////////////////////////////转载 2010-01-25 11:50:00 · 615 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之视图(转)
视图类CView 在MFC"文档/视图"架构中,CView类是所有视图类的基类,它提供了用户自定义视图类的公共接口。在"文档/视图"架构中,文档负责管理和维护数据;而视图类则负责如下工作: (1) 从文档类中将文档中的数据取出后显示给用户; (2) 接受用户对文档中数据的编辑和修改; (3) 将修改的结果反馈给文档类,由文档类将修改后的内容保存到磁盘文件中。 文档负责了数据真正在永久介转载 2010-01-25 13:03:00 · 609 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之框架(转)
从前文可知,在MFC中,文档是真正的数据载体,视图是文档的显示界面,对应同一个文档,可能存在多个视图界面,我们需要另外一种东东来将这些界面管理起来,这个东东就是框架。 MFC创造框架类的初衷在于:把界面管理工作独立出来!框架窗口为应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的窗口。一个应用程序启动时会创建一个最顶层的框架窗口。 MFC提供二种类型的框架窗口:单文档窗口S转载 2010-01-25 13:08:00 · 678 阅读 · 0 评论 -
Listctrl 样式和LV_ITEM和LV_COLUMN
typedef struct _LV_ITEM {UINT mask; //结构成员屏蔽位int iItem; //表项索引号int iSubItem; //子表项索引号UINT state; //表项状态UINT stateMask; //状态有效性屏蔽位LPTSTR pszText; //表项名文本int cchTextMax; //表项名最大长度int iIm转载 2010-02-01 17:51:00 · 2126 阅读 · 0 评论 -
转帖(VS2008找不到MFC90d.dll错误)
VS 2005/VS 2008在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打开看看),并在链接完成后将该清单文件嵌入到exe文件中(默认情况下)。而在FAT32文件系统中,在处理清单文件阶段,当增量链接时不能完成清单文件的更新(默认情况下),于是造成清单文件嵌转载 2009-12-07 08:55:00 · 1101 阅读 · 0 评论 -
findwindow-判断对话框是否已经打开
在VC++中,有时候需要判断对话框是否已经打开,即避免重复打开某个对话框,这个时候可以使用Win32 API函数:findwindow。1 函数原型: HWND FindWindow ( LPCSTR lpClassName, LPCSTR lpWindowName );2 参数表: lpClassName 指向一个以null结尾的、用来指定类名原创 2010-02-23 11:27:00 · 3846 阅读 · 0 评论 -
VC中子窗口访问父窗口的变量/函数
父窗口dlg1 中打开 dlg2 时,dlg2 能修改 dlg1 中的成员变量 //dlg1.cpp #include "dlg2.h" CDlg1::OnButton1() { CDlg2 dlg2; dlg2.m_pDlg1 = this; dlg2.DoModal(); } //dlg2.h class CDlg1;//添加dlg1类的声明 class CDlg2 : public转载 2010-02-25 17:00:00 · 2748 阅读 · 0 评论 -
一个简单的win32 控制台程序
// Test.cpp : Defines the entry point for the console application.//#include #include int main(int argc, char* argv[]){ printf("Hello World test 1!\n"); while(1) { if (kbhit()) {原创 2013-07-05 17:52:49 · 1165 阅读 · 0 评论