MFC
文章平均质量分 83
less@more
.....
展开
-
CTypedPtrList Class
Provides a type-safe "wrapper" for objects of class CPtrList. templateclass CTypedPtrList : public BASE_CLASSParametersBASE_CLASSBase class of the typed pointer list转载 2007-03-18 21:28:00 · 1396 阅读 · 0 评论 -
Windows API函数大全
Windows API (包含了所有Windows API) Api函数名 函数说明 WIN16可用 WIN95可用 WINNT可用--------------------------------------------------------------------转载 2007-12-18 15:52:00 · 1857 阅读 · 0 评论 -
Window 消息大全使用详解-
Window 消息大全使用详解消息, 就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息 给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了 单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单原创 2007-12-25 15:54:00 · 819 阅读 · 0 评论 -
使DLL在系统中仅有一个实例
动态库是一种可执行文件,在操作系统支持下,它成为独立于进程的共享可执行文件。MSDN对动态库作如下概念定义:动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存转载 2008-03-26 14:47:00 · 1004 阅读 · 0 评论 -
VC++ 2005编译出程序出现“应用程序配置错误”的解决方法
今天在准备发布用 VS2005写的那个程序时,拷贝到我同事机器上,双击突然出现了“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题 “,这个问题很让我意外,以前只出现过缺少DLL的情况,而这次出现这个问题,让我一时没办法。想想,无非是两个原因引起的,要么是他没有安装 VS2005的原因,要么是我的程序里依赖了其它的一些库。于是百度一下,发现好多相关主题。我是按照这个帖原创 2008-01-04 14:37:00 · 1317 阅读 · 1 评论 -
Visual C++2005中开发自定义绘图控件之一
本文源代码下载:CustomDraw.exe。 在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 — 在功能和外观两方面。例如,我们假定您正在创建一个类似于计速表的控件。由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与转载 2008-01-16 09:34:00 · 839 阅读 · 0 评论 -
Visual C++2005中开发自定义绘图控件之三
示例:创建一个列表视图控件自定义绘制控件 如前面提到的,您可以完全控制控件及其项的绘制,或者仅执行一小部分特定于 应用程序的绘制,并让控件继续进行。本文的焦点更多地偏重于控件绘制技术而非高级的绘制技术,我们将演练一个简单的示例,其中列表视图控件是一个自定义的 绘制,因此项的文本将在创建拼接外观的交替单元中显示为不同的颜色。 ·创建一个基于 Visual C++ 2005 对话框的项目,名为转载 2008-01-16 09:36:00 · 743 阅读 · 0 评论 -
VC中自定义消息实现
自定义消息 我们可以通过一下两种方法来自定义一个消息: 1) 方法一 Step 1:使用WM_TASKBARCREATED来确定一个没有被windows本身抢占 的消息值,在想添加消息文件中添加代码: const UINT WM_USERDEFMSG = ::RegisterWindowMessage(_T("UserDefMsg")); Step 2:定义消息的处理过程:在处理转载 2008-01-16 10:36:00 · 802 阅读 · 0 评论 -
Visual C++2005中开发自定义绘图控件之二
指定处理所需的绘制阶段 正如我在前面提到的,绘制一个控件存在一些“阶段”。特别是,您可以将绘制过程理解为一系列阶段,其中控件通知其父窗口需要绘制的内容。事实上,控件甚至会在绘制控件及其各项前后发送一个通知,从而让编程人员更好地控制该过程。 在所有情况下,单一的 NM_CUSTOMDRAW 处理程序在每个绘制阶段都进行调用。然而,谨记:自定义绘制允许您在自己的绘制中合并默认的控件绘制,您需要转载 2008-01-16 09:35:00 · 1138 阅读 · 0 评论 -
改变窗口外观
在www.vckbase.com中有一些介绍,如何改窗口外观。我就不赘述了。可以多看看代码。我这里给出一个将对话框改成圆角对话框的代码。其实主要是设置对话框区域。你也可以化成多边形的。 //创建圆角矩形窗口 CRect rcDialog; GetClientRect(rcDialog); // The following code Creates the area and a原创 2009-08-20 10:08:00 · 847 阅读 · 0 评论 -
窗口贴图
如何贴图了,懒得说了。反正就是使用BltBit或者StretchBlt。代码DisplayStretchDDB(CDC *pDC, UINT uResID, CRect rect){ CDC dcMem; //建立内存设备 dcMem.CreateCompatibleDC(pDC); //使内存设备和pDC设备兼容 CBitmap bitmap;原创 2009-08-20 09:56:00 · 960 阅读 · 0 评论 -
如何让窗口停放在桌面的右下角
其实这个问题很好解决,代码也就只有几行。首先就是获取桌面工作区,然后获取窗口本身区域,进行计算之后通过移动窗口就搞定了。MoveToBottom(){ CRect rcDesktop,rcWin,rc; SystemParametersInfo(SPI_GETWORKAREA,0,&rcDesktop,0); //获取桌面大小 GetWindowRect(rcWi原创 2009-08-20 09:46:00 · 902 阅读 · 0 评论 -
如何隐藏显示在任务栏中的对话框程序
最近有个朋友做了一个基于对话框的小程序,大家知道,一般具有用户界面的 Windows 程序运行起来后,通常都会在任务栏里体现出来。我的这个朋友不想让她做的对话框程序运行的时候显示在任务栏里。问我如何隐藏?我参考了 MSDN 后告诉她说使用 WS_EX_TOOLWINDOW 扩展窗口式样。她按照我说的方法试了一下,结果没有成功。后来我琢磨了半天,发现这件事情并不像文档中说的那么简单。MSDN转载 2009-08-20 16:42:00 · 1292 阅读 · 0 评论 -
CListCtrl 的customdraw和ownerdraw
自行绘制 ClistCtrl 的列表项,可以利用列表框的 NM_CUSTOMDRAW 消息,该消息由控件向它的父窗口发送,告诉父窗口它的绘图操作。 如果绘图操作不需要父窗口参与,可以使用该控件的 ON_NOTIFY_REFLECT 宏处理它的 NM_CUSTOMDRAW 消息。 它的处理函数的参数中包含 NMHDR,在 CUSTOMDRAW 的通知下 NMHDR 可以被转换成为 NMLVCUSTOMDRAW 结构,该结构包含了列表控件中需要自绘区域的全部信息:typedef struct ta转载 2010-08-18 16:29:00 · 8860 阅读 · 0 评论 -
CListCtrl行高的修改
<br />网上修改CListCtrl项高度的方法一般是扩大字体,及用图片将项高度撑大.<br />这两种方法虽然简单,但是效果却不是很理想.一种比较理想的方法是自画CListCtrl,不过方法相对来说比较复杂.<br />要修改CListCtrl的列表项高度,我们需要自己添加 MeasureItem 的消息响应函数,对应的消息是 WM_MEASUREITEM+WM_REFLECT_BASE, 而不是 WM_MEASUREITEM.在CListBox里我们可以直接在 ClassWizard 里将此消息响应添转载 2010-08-18 16:23:00 · 1152 阅读 · 0 评论 -
CStatic控件的基本使用
CStatic 继承于 CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、指针(cursor)、位图和增强图文元件. 通常静态控件不提供输入和输出。但是如果把他的属性设置为 SS_NOTIFY,他可以通知其父窗口的击鼠标事件。 一。CStatic 用于显示文本 如果文本不变,可以直接设置其 Caption。如果想在运行过程中改变其显示文本,可以用如下方式:CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STAT转载 2010-11-08 15:54:00 · 887 阅读 · 0 评论 -
VC之文件操作
一、 剖析VC中的文件操作 各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代 码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。 1.文件的查找 当对一个文件操作转载 2008-03-12 10:12:00 · 4171 阅读 · 3 评论 -
#progma整理
#pragma预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma转载 2007-12-05 09:48:00 · 889 阅读 · 0 评论 -
#pragma once的解释
#pragma onceSpecifies that the file will be included (opened) only once by the compiler in a build. This can reduce build times as the compiler will not open and read the file after the first #inclu转载 2007-03-18 21:08:00 · 1115 阅读 · 0 评论 -
UpdateData()函数
UpdateData()对于可以接收数据的控件,如编辑控件来说,UpdateData()函数至关重要。当控件内容发生变化时,对应的控件变量的值并没有跟着变化,同样,当控件变量值变化时,控件内容也不会跟着变。UpdateData()函数就是解决这个问题的。UpdateData(true);把控件内容装入控件变量UpdateData(false);用控件变量的值更新控件如:有编辑控件I转载 2007-06-22 21:32:00 · 987 阅读 · 0 评论 -
VC++ 6.0中使用复选框和单选钮
单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。 对话框编辑器中各组控件的对齐 按下Ctrl键并单击要对齐的各个控件,同时选中。最后选中的控件是对齐的基准,仔细观察,它周围的8个小方框是实心的,而其它被选控件周围的小方框是空心的。 在Layout菜单中选择Ma转载 2007-06-21 20:52:00 · 2002 阅读 · 0 评论 -
combo box
组合窗口是由一个输入框和一个列表框组成。创建一个组合窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_V转载 2007-06-24 10:37:00 · 1208 阅读 · 0 评论 -
关于模式与非模式对话框
对话框有两种创建方式:DoModal和Creat。 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同。对于模态的对话框,在该对话框被关闭前,用户将不能在同一应用程序的其他地方进行工作(例如open file对话框),而对于非模态的对话框,在它留在屏幕上的同时可以在其他的地方进行工作,(例如find file对话框)Create的Dialog一般转载 2007-06-25 22:30:00 · 1361 阅读 · 0 评论 -
VC常用数据类型使用转换详解
刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="女侠程佩君"; char temp[200]; char *buf; CString str; _vari原创 2007-04-29 22:29:00 · 680 阅读 · 1 评论 -
Visual C++ MFC 中常用宏的含义
AND_CATCHAND_CATCH AND_CATCH(exception_class,exception _object_point_name) 说明: 定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代 码可以访问异常对象(若合适的话)已得转载 2007-04-29 22:31:00 · 602 阅读 · 0 评论 -
对鼠标和光标进行操作的API函数
我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0++中利用所介绍的API函数实现对鼠标和光标的操作的代码。 一、隐藏和显示光标 函数: int ShowCursor ( BOOL bShow ); 参数 bshow,为布尔型,bShow的值为False时隐藏光标,转载 2007-04-29 22:32:00 · 2140 阅读 · 0 评论 -
基于Visual C++的Winsock API研究
为了方便网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程 接口,即Windows Sockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议 无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Socket实际在计算机中提供了一转载 2007-04-29 23:00:00 · 769 阅读 · 0 评论 -
VARIANT、COleVariant 和_variant_t
在OLE、ActiveX和COM中,VARIANT数据类型提供了一种非常有效的机制,由于它既包含了数据本身,也包含了数据的类型,因而它可以实现各种不同的自动化数据的传输。下面让我们来看看OAIDL.H文件中VARIANT定义的一个简化版:struct tagVARIANT { VARTYPE vt; union { short iVal; // VT_I2. long lVal; // VT原创 2007-11-14 09:12:00 · 3280 阅读 · 0 评论 -
_vartiant_转换成CString
/* * function: var2str(const _variant_t &var) * * purpose: cover the type "_vartiant_t"to the type "CString" * * parameters: _vartiant_t &var * * return value: CString * */CString var2str(const _v原创 2007-11-14 09:31:00 · 863 阅读 · 0 评论 -
C++字符串完全指引之一
引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符串类型之间的 转换。 在第一部分,我们将介绍3种字符编码类型。了解各种编码模式的工作方式是很重要的事情。即使你已经知道一个原创 2007-11-30 15:46:00 · 835 阅读 · 0 评论 -
C++字符串完全指引之二 —— 字符串封装类
C++字符串完全指引之二 —— 字符串封装类 原著:Michael Dunn 原文出处:CodeProject:The Complete Guide to C++ Strings, Part II 引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的原创 2007-11-30 15:51:00 · 936 阅读 · 0 评论 -
CString的工作原理介绍 C++/VC
看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们发现,很多程序的bug多和字符串有关,典型的有:缓冲溢出、 内存泄漏等。而且这些bug都是致命的,会造成系统的瘫痪。因此c++里原创 2007-11-30 15:03:00 · 753 阅读 · 0 评论 -
计算机的几种时间格式
一.FILETIME和SYSTEMTIME格式 我遇到的第一种时间格式是在使用函数GetFileTime时返回的 FILETIME,这是一个64位(8字节)结构。在SDK文档中,关于这个结构是这样描述的“FILETIME结构的64位值,表示从1601年1月1 日开始的以100纳秒(一纳秒为十亿分之一秒)为间隔的值”。我不知道你——反正我的朋友和亲戚——在听到“100纳秒”时头都大了。原创 2007-11-30 19:41:00 · 1425 阅读 · 0 评论 -
Spy++的搜索窗口程序
大家都用过Vc自代的工具Spy++,它可以通过鼠标来捕捉窗口,得到窗口的信息。在MSDN里面找到了一个相关的API:RealChildWindowFromPoint:HWND RealChildWindowFromPoint( HWND hwndParent, // handle to window POINT ptParentClientCoords // client coordinates);The RealChildWindowFromPoint func原创 2011-01-11 11:38:00 · 1688 阅读 · 0 评论