- 博客(53)
- 资源 (8)
- 收藏
- 关注
转载 分析MFC中的映射
MFC中大量使用了BEGIN_XXX_MAP这样的宏,以及映射进行查找优化,例如消息映射,OLE命令映射,以及接口等等。每个映射包含一个指向基类的映射的指针。这样,当一个类需要根据一定的条件查找一个对象时,它会查找本类对象,如果没有找到,那么会查找基类,直到根基类。这类查找包含Windows消息,命令,事件和OLE命令的分发,和对象实现的接口的查询等等。下面是函数BOOL CWnd::OnWn
2008-12-31 15:31:00 583
转载 在ToolBar上使用半透明图像
MFC的CToolBar类中对图标的处理仅提供了三个函数:SetImageList()、 SetHotImageList()和SetDisabledImageList()。对于图像的透明,也仅支持镂空效果,即要么图标显示前景,要么显示背景。而PNG图像中的半透明效果、边缘羽化后的效果均无法表现。CToolBar没有提供图标自画功能,如何实现更漂亮的ToolBar呢? 答案就是:自已画!
2008-12-31 14:57:00 906
转载 使用VC实现可拖动窗口
有很多漂亮的小程序,它们的窗口都是可以拖动的。鼠标在窗口的任意位置按下,即可把窗口拖动到其它位置。通常标准的Windows窗口只有在标题栏上按下鼠标才可以拖动,那么如何实现窗口的任意位置都可以拖动呢?稍有经验的程序员会立刻想到:响应鼠标按下消息,然后在鼠标移动时移动窗口。对于程序基础好的程序员,可以按这个思维很快实现,对于初学者,可能就要多调试一会儿了。有没有其它方法呢?仔细了解一下MFC
2008-12-31 14:55:00 1137
转载 MFC框架中视图窗口全屏显示
MFC的视图文档结构中,视图永远在框架窗口的范围之内。本文介绍一种把视图全屏显示的方法,能使视图的大小占据整个显示器窗口。方法要点1:扩大主框架窗口。因为视图的大小是随主框架窗口的大小自动调整的,所以首先要把主框比显示器窗口还大,以给视图留下足够占满显示器的空间。方法要点2:把主框架窗口移到合适的位置,使视图的左上角正好在屏幕的左上角。注意:对于不能自动按框架大小自动调整的视图,如被分
2008-12-31 14:54:00 1095
转载 使用内存DC防止窗口闪烁
在使用VC开发图形相关的应用程序时,常常需要使用MFC的CDC类直接把图形画在窗口上。这通常是通过响应Windows的WM_PAINT消息实现的。如果要画的图形比较复杂,或者比较大,那么画图过程可能会造成窗口的闪烁。当窗口调整大小时,这种闪烁由为明显。 解决窗口闪烁问题的有效办法就是使用内存DC,也称为缓冲DC。在内存中准备一个和窗口DC相同属性的DC,在这个内存DC上执行画图操作。完成画
2008-12-31 14:53:00 769
转载 MFC框架中WM_COMMAND消息响应顺序
在MFC开发的程序中,菜单、工具条按钮等都会产生WM_COMMAND消息。而在MFC的Document/View框架中,有很多类可以响应WM_COMMAND消息,分别是框架类:CFrameWnd、CMDIChildWnd、CMDIFrameWnd;应用程序类CWinApp;文档类CDocument;以及视图类CView。当应用程序主菜单发送了一个WM_COMMAND消息时,WM_COMMAND
2008-12-31 14:50:00 660
转载 透过宏定义了解MFC的消息响应机制
消息系统是MFC的重要组成部分。MFC的消息响应机制并不复杂,而且MFC的开发环境 Visual Studio来供了非常好的自动化工具,自动生成代码。MFC也定义了丰富的宏来简化消息响应的代码。这使得很多初学者都能快速开发出基于消息响应机制的应用程序。然后也正是这些带来方便的宏,使很多人摸不着头脑。当不小心的代码操作使自动化工具不好用的时候,看着那一组更像是一堆的宏,很多人只好一头雾水。
2008-12-31 14:44:00 632
转载 VC++播放音频的简单方法
本文介绍一种如何在VC6.0资源文件中加入自己的声音资源,使自己的应用程序可以播放声音的简单方法:1.添加声音资源在Resource View窗口使用快捷键Ctrl+R打开Insert Resource对话框,选择Custom..这项,创建一个新的资源类型,我将它命名为“WAVE”,也就是创建声音资源类型。由于Windows系统提供的API函数支持对wav文件的操作,所以声音文件的类型必
2008-12-31 01:53:00 1316
转载 在VC++中读写INI文件(转载)
一、向ini文件中写入信息的函数 1. 把信息写入系统的win.ini文件 BOOL WriteProfileString( LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串 LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节 LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为
2008-12-31 01:51:00 727
转载 VC程序启动画面
HBITMAP hBmp; //要显示的位图 hBmp = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAPgtlogo)); HDC hScreenDC = CreateDC("DISPLAY", NULL, NULL, NULL); //屏幕DC HDC hMemDC = Creat
2008-12-31 01:50:00 754
转载 VC中多线程(转)
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //延
2008-12-31 01:49:00 550
转载 VC中Radio控件的用法(;转载)
VC中Radio控件的用法 先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)Get
2008-12-31 01:48:00 599
转载 vc可设置字体和颜色的按钮
以下为具体的实现方法:加入一个新类,类名:CMyButton,基类:CButton。在头文件 MyButton.h 中加入以下变量和函数定义:private: int m_Style; //按钮形状(0-正常,1-当前,2-按下,3-锁定) BOOL b_InRect; //鼠标进入标志 CStrin
2008-12-31 01:46:00 2868 1
转载 VC 数据库编程--ADO接口详解
/***********************VC 数据库编程--ADO接口详解*********************************/ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。 _ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如
2008-12-31 01:45:00 1185 1
转载 VC中全局变量的定义和调用
VC中全局变量的定义和调用 1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。 2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加入:extern int myInt这样定义以后无论在什么文件中都是可见的.3。比较规范的是,先定义一个Glbs.h,把所有的全
2008-12-31 01:44:00 2325 1
转载 VC6.0中基于MSFlexGrid的可编辑表格
一、 概述 在我们制作的用户界面中很多时候会用到表格,当然我们首先想到的是用控件,如MSFlexGrid。我们可以方便的调用控件自身的函数来对表格中的元素进行操作,但是如果要设计一个可以编辑的表格,我们该怎么办呢?事实上这种可编辑表格的应用还真的不少,主要是其用户操作的交互性较好。笔者在前一阶段开发项目时遇到了这个问题,以下介绍笔者的实现方案。
2008-12-31 01:43:00 1318
转载 VC6.0编译器参数设置
VC6.0编译器参数的设置主要通过VC的菜单项Project->Settings->C/C++页来完成。我们可以看到这一页的最下面Project Options中的内容,一般如下:/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Debug/Writ
2008-12-31 01:31:00 616
转载 WinSock学习笔记
与socket有关的一些函数介绍1、读取当前错误值:每次发生错误时,如果要对具体问题进行处理,那么就应该调用这个函数取得错误代码。 int WSAGetLastError(void );#define h_errno WSAGetLastError()错误值请自己阅读Winsock2.h。2、将主机的unsigned long值转换为网络字节顺序(32位):为什么要这样做
2008-12-31 01:28:00 567
转载 VC++6.0编译环境介绍
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? LINE
2008-12-31 01:26:00 705
转载 vc自定义消息的发送与接收的方法实现
以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的消息传递的方法一:使用ON_MESSAGE使用ON_MESSAGE响应消息,必须配合定义消息#define WM_MY_MESSAGE (WM_USER+100)对于发送消息者-MyMessageDlg,在其MyMessageDlg.
2008-12-31 01:22:00 676
转载 使用VC6.0实现窗口的任意分割
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗口被
2008-12-31 01:20:00 534
转载 VC通用控件编程之CImageList控件
图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现。 (一)图像控制的对象结构 1、
2008-12-31 01:18:00 527
转载 VC通用控件编程之CList控件
(一)列表控制的主要功能 列表控制和视(List Control&View)主要用来以各种方式显示一组数据记录供用户进行各种操作,Windows98/95中资源管理器中的“查看”标签下的“大图标|小图标|列表|详细资源”就是一个非常好的典型应用。列表中的记录可以包括多个数据项,也可以包括表示数据内容的大小图标,用来表示数据记录的各种属性。 列表控制提供了对Windows列表功能操作的基本方
2008-12-31 01:10:00 606
转载 关于Debug和Release之本质区别
本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错2. 怎样“调试” Release 版的程序-------------------------------------- 关于Debug和Release之本质区别的讨论一、Debug 和 Release 编译方式的本质区别 Debug 通常
2008-12-31 01:08:00 481
转载 轻松实现一个操作ini文件的类
前言: 相信很多朋友在编写自己的程序中,都需要把一些数据先期导入到程序中进行初始化。那么这个时候,比较好的做法就是把你所有的数据写入一个ini文件,然后在程序去读ini文件中的数据对行初始化。 一.INI简介 那么什么是ini文件呢?ini文件是Initialization file的缩写,意即初始化文件。(从名字就可以看出它的功能了吧)。不仅你自己的程序可
2008-12-31 01:08:00 707
转载 CEdit & CRichEdit 使用技巧
注: m_edit1代表ID为IDC_EDIT1的CEdit控件的control类型的变量 m_richedit1代表ID为IDC_RICHEDIT1的CRichEditCtrl控件的control类型的变量1.设置edit只读属性 方法一: m_edit1.SetReadOnly(TRUE); 方法二:
2008-12-31 01:06:00 583
转载 CListCtrl 使用技巧
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_
2008-12-31 01:05:00 490
转载 CListBox & CCheckListBox 使用技巧
CListBox 和 CCheckListBox 简介CListBox用来输出一系列的文本,每条文本占一行。CCheckListBoxCCheckListBox是由CListBox派生,具有CListBox的所有功能。与CListBox唯一不同是在每一行前面加上了一个检查框(Check Box)。要使用CCheckListBox,需要在资源视图(resourceview)中(1) Style-
2008-12-31 01:05:00 619
转载 如何移动、替换和删除当前正在使用的文件
概要有时,Win32 应用程序需要删除、重命名或移动系统当前正在使用的文件。一个常见的例子就是安装程序在完成软件包的安装后,需要从用户硬盘中将它自身删除。有时,这些应用程序还需要移动系统当前正在使用的设备驱动程序。它们需要操作系统的帮助才能删除或移动这些文件。 Windows 95 和 Windows NT 分别提供了一种独特的方法,来帮助应用程序删除、替换或重命名正在使用的文件和目录。尽管这
2008-12-31 01:04:00 1234
转载 在VC++下对文件属性的获取与更改
在VC++下对文件属性的获取与更改摘要:本文讲述了在Visual C++ 下编程实现对磁盘文件的属性进行获取以及更改的一般方法,并给出部分相关的关键代码。 一、 引言 文件是数据在磁盘上最常用的一种存放形式,也是在程序设计中与之经常打交道的一种编程对象,不少程序尤其是数据传输和处理类的应用程序更是需要频繁的创 建、读取和写入文件。对于一些要求不是很严格的程序,我们往往只关心文件的内容是否正
2008-12-31 01:02:00 630
转载 VC++实现对文件夹时间的修改
通常在数据维护与数据管理等工作中,经常要对各类数据进行备份操作。对于大多数的IT企业和绝大多数的个人用户而言,数据的备份主要是对数据内容的简单 备份,而很少涉及对备份数据自身属性如文件属性、所在文件夹的时间属性等内容的备份。而在某些对数据管理有着非常严格要求的特殊行业中,对以上这些相关属 性信息的备份也是同等重要的。但是在目前的Windows操作系统下,不论是直接通过手工进行数据备份还是通过某
2008-12-31 01:02:00 624
原创 Dialog & Windows 使用技巧
注:以下代码以一个名为CTest6Dlg的对话框类为例1. 在任务栏隐藏对话框 ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);2. 使对话框为顶层窗口 SetWindowPos(&this->wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);3
2008-12-31 01:01:00 658
转载 VC++ 中对注册表的操作
这里只是对注册表的几个api函数的使用简介。在MFC中,你可以使用CRegKey类操作注册表,关于CRegKey类在这里就不做介绍了,可以参考msdn。以下代码实现了在HKEY_LOCAL_MACHINE的SOFTWARE下打开MyProgram键,如果MyProgram不存在,则创建之,存在则进行查询 HKEY hKEY; HKEY hKEYResult; LPCTSTR lpszSub
2008-12-31 00:58:00 617
转载 CPropertySheet 使用技巧
前言:其实,已经有前人做过关于CPropertySheet的使用介绍。参考http://www.codeguru.com/Cpp/controls/propertysheet/article.php/c3973/在该文中,作者介绍了以下一些应用技巧:1.隐藏和移动标准按钮(ok, cancel,apply,help)2.改变 Tab Label 的文本内容3.改变 Tab Label 的文本字体4
2008-12-31 00:58:00 892
转载 在vc中实现获取汉字拼音的首字母
/********************************************************************************************/* Syntax/* GetFirstLetter(CString strName, CString& strFirstLetter)/* Remarks:/* Get the fir
2008-12-31 00:52:00 29539
转载 Windows API函数大全
Windows API函数大全1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举
2008-12-31 00:51:00 637
转载 在vc中设置桌面墙纸
1.用SystemParametersInfo设置墙纸很简单,一句话搞定:SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C://xxx.bmp", SPIF_SENDWININICHANGE| SPIF_UPDATEINIFILE);but, 这玩意儿只能用bmp文件,不能用其他文件,MS也不把函数功能扩展一下,BS一下MS。再but,这玩意儿也不能
2008-12-31 00:50:00 1625 1
转载 CListCtrl 使用技巧
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_
2008-12-31 00:48:00 588
转载 在SDK中使用TreeView控件
在SDK中使用控件非常的麻烦,不像VB之类的编辑工具,直接设置控件属性就能很方便的控制控件。平时用得最多的控件包括按钮、ListBox、Combobox、Edit、Image List等,学了一个多月SDK,发现只会用按钮和Edit控件,其它的控件一点儿都不会用,所以决定拿些时间来熟悉这些常用控件,首先准备熟悉的是TreeView控件。一、TreeView不管是作用TreeView控件还是
2008-12-31 00:45:00 1021
转载 VC 中 TreeView 全面解析
(一)树控制的主要功能树控制和视(Tree Control&View)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的文本字符串和用于表示该数据项的图像,每个数据项下面均可包含各种子项,整个结构就象目录树一样。对于包含各种子项的数据项,可通过鼠标双击来展开或合拢,这可以通过控制树的不同风格来实现树控制的不同显示形
2008-12-31 00:44:00 720
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人