VC++
文章平均质量分 78
dancewyr
这个作者很懒,什么都没留下…
展开
-
VC++中的Combo Box用法
一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示ComboBox下拉列表中的一行。换行用ctrl+回车。2. 在程序初始化时动态添加 CString strTemp; ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();//消除现有所有内容 for(i转载 2012-07-12 14:40:56 · 1316 阅读 · 0 评论 -
VC++中可编辑的CListCtrl实现
CEditableListCtrl类实现代码EditableListCtrl.h文件#if!defined(AFX_EDITABLELISTCTRL_H__D931FC67_33E0_4A71_8C4B_2E62FBCA6081__INCLUDED_)#defineAFX_EDITABLELISTCTRL_H__D931FC67_33E0_4A71_8C4B_2E62FBCA6081_转载 2012-06-17 21:42:16 · 4941 阅读 · 0 评论 -
VC++中树形控件CTreeCtrl的使用
VC++中树形控件CTreeCtrl的使用树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。MFC中使用CTreeCtrl类来封装树形控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一转载 2012-06-18 10:26:20 · 4789 阅读 · 0 评论 -
VC++实现打印功能相关
Visual C++ 6.0编程实现打印功能Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这个问题很复杂,不知道如何下手。本例针对这个问题,介绍一种简单的方法实现文字串的打印功能,读者朋友可以在此基础上稍微改动一下,就可以实现文件、图像的打印功转载 2012-06-18 21:09:28 · 9249 阅读 · 0 评论 -
VC++中COM开发理论知识
我见过很多人学COM,看完一本书后觉得对COM的原理比较了解了,COM也不过如此,可是就是不知道该怎么编程序,我自己也有这种情况,我也是经历了这样的阶段走过来的。要学COM的基本原理,我推荐的书是《COM技术内幕》。但仅看这样的书是远远不够的,我们最终的目的是要学会怎么用COM去编程序,而不是拼命的研究COM本身的机制。所以我个人觉得对COM的基本原理不需要花大量的时间去追根问底,没有必要,是吃力转载 2012-06-18 12:09:38 · 8427 阅读 · 1 评论 -
VC++实现微秒级的精确定时器
在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精确定时操作。 众所周知,Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。 这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息转载 2012-06-15 20:02:22 · 17533 阅读 · 2 评论 -
VC++中的ASSERT断言
一、摘自《高质量C/C++编程指南》Page 41-42...程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。示例6-5 是一个内存复制函数。在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在转载 2012-06-17 20:21:47 · 5447 阅读 · 0 评论 -
深入分析MFC文档视图结构
1 必备基础知识概述1.1 MFC 文档视图结构程序结构总揽当我们使用 MFCAppWizard 生成一个 MFC 程序,选用所有默认的设置(当然也是 Multiple Documents,本文讨论主要基于Multiple Documents ,对于 Single Document 情况仅以简单表述提及,皆因后者和前者很多相似相同之处,但前者更为复杂,并且更加常用。),假设你的程序名称为转载 2012-06-15 19:25:07 · 1177 阅读 · 0 评论 -
学习MFC开发必须了解的常用宏和指令
1、#include指令 包含指定的文件 2、#define指令 预定义,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了 3、#typedef指令 常用来定义一个标识符及关键字的别名它是语言编译过程的一部分,但它并不实际分配内存空间。 4、转载 2012-06-15 19:20:34 · 1383 阅读 · 0 评论 -
卸载VC6.0后清理相关注册表的方法
卸载VC6.0后重新安装会出现一些问题,这些问题主要是由于注册表没有清理完全的缘故手动卸载VS6.0清理相关注册表的方法http://support.microsoft.com/kb/248347/en-us/Deleting Visual Studio-Related Registry KeysThis section contains information on the转载 2012-05-29 14:04:27 · 10544 阅读 · 1 评论 -
VC6.0工程升级到VS2010遇到问题及解决办法
今天尝试将原先编写的VC6.0下的工程升级到VS2010下,升级过程中遇到了各种各样的问题,网上针对升级遇到的问题有不少的讨论,这里仅针对我的项目程序升级过程中遇到的问题及解决办法进行了总结,希望对大家有所帮助。1.编译错误C20651>c:\documents and settings\administrator\桌面\host_sp3\selectdialog.cpp(62):原创 2012-05-27 11:30:28 · 4790 阅读 · 2 评论 -
VC++中的子类化
如果你曾经在 Windows 环境下编过程序,有时候就会发现:有一个现成的窗口,几乎有你所需要的全部功能,但还不完全一样。如果你需要一个具有过滤特殊字符功能的 Edit 控件。当然最直接的方法就是自己用代码来实现,但这的确是一个费时又很困难的任务,而子类化就可以用来做这种事情。子类化允许你接管被子类化的窗口,使你对它有绝对的控制权。举个例子了来阐明一下:例如你需要一个只接受十六进制数字输入的文转载 2012-06-17 11:27:58 · 2933 阅读 · 0 评论 -
VC++中属性页(向导)的实现
我们已经非常熟悉软件安装的步骤,一般都是由用户协议、安装位置、安装选项、安装这几个过程构成。其中,I agree、next、back、finish、cancel这几项是必不可少的。那么这个安装程序(仅仅指这个安装过程的界面)是怎么做出来的呢?MFC给我们提供了很方便的方法。其实,我们看到的每一个步骤,都是一个属性页(CPropertyPage),而几个属性页构成一个属性表(CpropertyS转载 2012-06-18 10:02:21 · 4327 阅读 · 0 评论 -
VC++设计托盘图标程序
在Windows操作系统中,任务栏的右边(托盘)会常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸、实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口。有时我们自己编写的程序也希望有类似的效果,本文将详细地介绍用VC设计托盘图标程序的方法转载 2012-06-27 20:41:03 · 1106 阅读 · 0 评论 -
MFC六大关键技术
本文转自http://blog.csdn.net/netanimals/article/details/6595467我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具体呢,“黑箱”作业不行吗?这转载 2012-06-26 15:13:39 · 2668 阅读 · 0 评论 -
MFC的消息映射机制相关
MFC中的消息分类消息分类从不同的角度,有如下几种分类方式。一、从消息的发送途径上看,可以分为队列消息和非队列消息。队列消息和非队列消息Windows为当前运行的每个Windows程序维护一个“消息队列”。当通过鼠标或者键盘发生输入事件后,Windows将事件转换为一个“消息”,并将消息放入程序的消息队列中。而队列消息是指由Windows放入程序的消息队列中的消息,在程序消息循转载 2012-06-26 10:24:15 · 2409 阅读 · 0 评论 -
VC++中的Tab Control简单例子
属性表(CPropertyPage和CPropertySheet)和Tab Control 的区别The CPropertySheetis actually a dialog with a CTabCtrl. Each CPropertyPage is a child of the CPropertySheetand is only displayed inside the CTabCtr转载 2012-06-18 10:00:26 · 9371 阅读 · 0 评论 -
VC++中添加工具栏和状态栏
VC++中添加工具栏方法1、 使用VC生成的工具栏通过VC资源窗口insert一个工具栏资源IDR_TOOLBAR1,并进行编辑为对话框类添加一个工具栏变量 CToolBarm_ToolBar;在OnInitDialog()函数中添加如下代码,添加显示工具栏 if(!m_Toolbar.CreateEx( this,TBSTYLE_FLAT , WS原创 2012-06-18 13:08:59 · 10465 阅读 · 0 评论 -
Visual C++ 2010入门教程
《Visual C++ 2010入门教程》作者:董波日期:2010.6.14《Visual C++ 2010入门教程》系列一:关于Visual Studio、VC和C++的那些事http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/50b6e212f28de4c3c2fd7840.html《Vis转载 2011-09-28 15:41:15 · 1692 阅读 · 0 评论 -
VC++中的窗口样式、窗口重绘、显示顺序
Invalidate、UpdateWindow、Z-order、显示顺序转自:http://blog.pfan.cn/yuqiexing/51146.html在一个Dialog的OnPaint按照下面的方法实现:voidCMyDialog::OnPaint(){ CWnd*pWnd=GetDlgItem(IDC_STATIC1); CDC*pDC=pWnd->GetDC转载 2012-06-18 12:31:20 · 6912 阅读 · 0 评论 -
VC++中建立ADO操作类
以通过ADO连接ACCESS数据库为例,建立CADOConn类,方便数据库操作。ADOConn.h文件// ADOConn.h: interface for the CADOConn class.////////////////////////////////////////////////////////////////////////#if !defined(A原创 2012-06-18 12:40:40 · 1591 阅读 · 0 评论 -
VC++操作word实例详解
我们操纵Word需要通过类型库中的MFC类。而这些类,应该都是基于一个叫COleDispatchDriver的类。至少我所了解到的都是这样。COleDispatchDriver没有基类。COleDispatchDriver类实现OLE自动化中的客户方。OLE调度接口为访问一个对象的方法和属性提供了途径。COleDispatchDriver的成员函数连接,分离,创建和释放一个IDispatch类转载 2012-06-18 20:34:56 · 10755 阅读 · 1 评论 -
VC++6.0快捷键大全
共分四部分:dialog, image, main and text。每部分里面有若干项,每项由命令、快捷键和注释组成。 Dialog:ControlHeightDecrease Shift+上箭头 Sizes the selected control or dialog up one dialog unitControlHeightIncrease Shift+下箭头 Moves转载 2012-01-02 21:19:05 · 1406 阅读 · 0 评论 -
VC中常见的108个问题
(1) 如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd()->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Examp转载 2012-03-11 18:19:36 · 993 阅读 · 0 评论 -
VC++多线程编程
==============================================================================================#define CM_TEST1 (WM_USER+100) //自定义消息static DWORD WINAPI ImageDlgThread(LPVOID lpParameter); //转载 2011-11-26 21:12:04 · 698 阅读 · 0 评论 -
VC++中MCI播放音频文件
MCI播放mp3音频文件例程源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Winmm.lib。或添加代码#pragma comment(lib, "winmm.lib")MCI_OPEN_PARMS op;void CMCIDlg::OnPlay() { // TODO:转载 2012-01-07 15:07:59 · 12368 阅读 · 5 评论 -
VC++中的CString、char、int类型转换
1、如何将CString类型的变量赋给char*类型的变量方法一:GetBuffer函数使用CString::GetBuffer函数。char *p; CString str="hello"; p=str.GetBuffer(str.GetLength()); str.Relea转载 2011-07-29 09:53:14 · 11681 阅读 · 0 评论 -
VC++中的字体设置
VC++中static text字体改变 窗口都有2个和字体有关的函数:CWnd::GetFont()和SetFont(CFont*, BOOL);1)CFont* pFont = m_static.GetFont();2)LOGFONT LogFont;pFont->GetLo转载 2011-07-28 21:15:37 · 11336 阅读 · 0 评论 -
VC++中的全局变量
VC中使用全局变量的2种办法及防错措施 1. 对于全局变量存在和函数一样的问题,为了在其他CPP文件中能够访问这些变量,必须在主文件的H文件中加上extern声明,格式如下: extern varibletype var; (声明)在主文件的CPP文件中定义 variblety转载 2011-07-28 20:22:15 · 1180 阅读 · 0 评论 -
VC++中的文件操作
一:文件读写操作。 各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对转载 2011-07-28 20:47:45 · 627 阅读 · 0 评论 -
VC++中的MessageBox()与AfxMessageBox()
消息框MessageBox是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1.MessageBox("这是一个最简单的消息框!"); 2.MessageBox("这是一个有标题的消息框!","标题"); 3.M转载 2011-07-28 20:07:11 · 2119 阅读 · 0 评论 -
VC++中定时器的使用
在编程时,会经常使用到定时器。使用定时器的方法比较简单,通常告诉Windows一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。 1.1 用WM_TIMER来设置定时器先请看SetTimer这个转载 2011-07-28 20:27:28 · 6453 阅读 · 0 评论 -
VC++中动态创建控件
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再转载 2011-07-28 20:24:01 · 3493 阅读 · 0 评论 -
VC++模态对话框和非模态对话框
MFC中有两种类型的对话框:模态对话框和非模态对话框。 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。 模态对话框的创建:创建模态对话框需要调用CDia转载 2011-07-28 19:54:30 · 2977 阅读 · 1 评论 -
VC++中CAnimateCtrl动画控件类
CAnimateCtrl类提供了Windows通用动画控件的功能。此控件只对运行在Windows 95和Windows NT 3.51版及其更高版本下的程序有效。动画控件是显示AVI(视听交错)格式──标准Windows视/听格式片段的矩形窗口。一个AVI片段是一系列位图帧,就象转载 2011-09-08 20:44:56 · 2212 阅读 · 0 评论 -
VC++中改变对话框背景颜色
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。 下面的例子是将应用程序对话框设置为蓝色背景和红色文本,步骤如下: ①新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg。 ②在CExampleDlgApp::InitInstance()中添加如下代码:BO转载 2011-12-25 19:01:19 · 1238 阅读 · 0 评论 -
探索C++的秘密之详解extern "C"
时常在cpp的代码之中看到这样的代码:以下是引用片段: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是转载 2011-12-20 11:07:52 · 457 阅读 · 0 评论 -
Release版本以及静态&动态链接库
一、Release版本的发布(针对VC++6.0): 如果是VC工具生成的,在release配置中,使用静态库,然后再release编译,最后在release目录下可以找到相应的程序. 菜单栏Build->Set Active configuration, 从中选择Debug版本或者Release版本。设置链接库的位置:菜单栏Project->Settings->General中的Micr转载 2011-07-28 20:33:31 · 2995 阅读 · 0 评论 -
C++中iostream.h和iostream 区别
C++中新定义的方法都是有名字空间的 比如cout就属于std名字空间 如果include头文件的时候加上.h,默认会using namespace 否则需要自己加上 using namespace XXX 对于C中已经定义的方法如printf,没有影响的iostream转载 2011-09-28 14:58:25 · 1026 阅读 · 0 评论 -
C++中的命名空间
一、 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。 在C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义转载 2011-09-28 14:56:25 · 544 阅读 · 0 评论