自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 MFc CListCtrl 使用详解

列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:LVS_IC

2013-03-08 10:36:08 921

转载 lib 与 dll的关系

(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文 件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。

2012-11-15 10:34:11 910

转载 VC MFC滚动条(CScrollBar)控件

这里不讲滚动条的使用方法了,只说怎么自绘滚动条控件。滚动条基本知识参考http://hi.baidu.com/3582077/blog/item/d30e5b38f8709aecb211c7c0.html(PS暂且先自绘水平滚动条,不考虑垂直滚动条,有了这个基础,后面会给出完整的例子,直接看代码就行了,不需要再说明了)自绘是在滚动条WM_PAINT消息处理函数里完成的。第一

2012-10-29 14:26:28 14813

转载 MFC的资源切换AFX_MANAGE_STATE(AfxGetStaticModuleState())

以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废话。最近的项目中,需要在DLL里使用MFC生成界面,这才发现一旦资源放在不同的动态库里,而且还和多线程搅和在一起的时候,事

2012-10-25 11:16:05 950

原创 GDI绘图(一)

最近在做一个聊天界面,使用GDI绘制。基本的思路还是一样,首先建立一个兼容DC,选入适当大小的内存位图,然后在兼容DC上绘制你想要的图像,最后复制到设备DC上。这是常规的防止闪屏的一种方法!绘制过程比较顺利,但是调试的时候发现内存泄露的比较严重。查看任务管理器,可以看见内存不断的增长,同时GDI对象数目不断增多。        总结一下这是第一次关注GDI内存泄露问题,以前总认为我

2012-09-25 13:50:30 567

转载 键值表

VK_LBUTTON0x01输入笔点击VK_RBUTTON0x02鼠标右键VK_CANCEL0x03Control-Break处理VK_MBUTTON0x04鼠标中间键VK_BACK0x08Backspace键VK_TAB0x09

2012-08-20 11:23:57 1007

转载 执行文件的自删除

Self-deleting ExecutablesTechniques which allow an executable file to delete itself whilst runningThis is a subject that tends to come up every so often in the newsgroups,

2012-08-13 16:59:36 1162

转载 深入理解MFC子类化

深入理解MFC子类化(二)  1 本文有讲的不对的地方希望大家务必指出!不甚感谢!2 本文我上传在多处,转载请指明转载地址。原理探讨    追溯的目标:在整个程序中的哪个位置改变了m_edit关联窗口的消息处理函数。        首先,来探讨一下m_edit和窗口关联实现:m_edit.SetclassDlgItem(IDC_EDIT1

2012-08-03 16:52:49 988

转载 深入探讨MFC消息循环和消息泵

深入探讨MFC消息循环和消息泵首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessa

2012-08-01 17:02:41 1551

转载 exe与dll的自我更新

exe与dll的自我更新   在改写一个软件的自动更新程序时遇到一个问题exe与dll在载入的时候是不能覆盖与删除的...自动更新的时候,如何把用http/ftp下载下来的新版本替换旧版本第一种是最老土的办法:假设a.exe要更新自己, down下来为a.exe.upd, 关闭自己,并execute一个第三方程序b.exe,b.exe 功能就是 将a.e

2012-07-26 15:33:01 1430

原创 MFC创建圆角矩形边框

最近在写一个安装程序的界面。需要自绘对话框及一系列控件。个人认为MFC自定义控件或对话框最基本的思想就是了解这些元素的创建过程,并适当的截取消息进行重写。对话框分为客户区与非客户区。获取客户区的设备上下文函数是:GetDC();获取非客户区的设备上下文是:GetWindowDC();这个DC其实是整个窗口的DC。我们要绘制一个圆角矩形的边框。就是响应

2012-07-17 15:58:58 10218 4

转载 MFC 绘图

学习MFC过程中从书中提炼出来的表格,方便使用。设备描述表属性、GDI画笔和CPen类、GDI画刷和CBrush类、主要的GDI颜色、CDC文本函数、GDI文本对齐方式、常用设备对象。 设备描述表属性 当使用CDC输出函数在屏幕画图时,输出的某些特性并没有在函数调用过程中规定,但可以通过设备描述表自身获得。如果想忽略背景颜色,可将背景模式设置为“transparent”。Att

2012-05-22 15:11:03 1189

转载 MFC 加载jpg等图片

MFC提供的CWnd只有默认加载BMP文件的接口,对JPG等图像是不支持的,而实际中经常需要用到非BMP的图片,在VC中加载.JPG格式的图片,有两种方法,用流对象加载和用IPicture接口加载。IPicture *m_picture;OLE_XSIZE_HIMETRIC m_width;OLE_YSIZE_HIMETRIC m_height;CString m_file

2012-05-16 15:03:17 14773 4

转载 PreSubclassWindow详细分析

PreSubclassWindowPreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。其实,用户要在对话框中使用定制控件,必须用DDX

2012-05-16 11:15:43 17744 7

转载 MFC中OnTimer的应用

MFC中OnTimer的应用OnTimer()函数用于实现定时控制功能,定时控制功能主要由下面三个函数共同实现:SetTimer, KillTimer()和OnTimer().粗略的说,Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。或者说Settimer是设置定时器的,Ont

2012-05-16 09:11:16 782

转载 CToolTipCtrl使用详细解说

CToolTipCtrl使用详细解说ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。 一般用法步骤:1. 添加CToolTipCtrl成员变量 m_tt。2. 在父窗口中调用EnableToolTips(TRUE);3. 在窗口的OnCreate(或者其他

2012-05-16 09:04:34 437

转载 CString 与数据类型的转换方法

CString 与数据类型的转换方法通过阅读本文你可以学习如何有效地使用 CString。  CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。  使用CString可以让你对字符串的操作

2012-05-14 10:03:12 1237

转载 CString常用方法简介

CString常用方法简介CString::Compareint Compare( LPCTSTR lpsz ) const;返回值   字符串一样 返回0          小于lpsz  返回-1         大于lpsz  返回1         区分大小字符         CString s1( "abc" );CString s2( "abd" );

2012-05-14 10:02:17 494

转载 visual studio 2005报错:fatal error LNK1107: 文件无效或损坏: 无法在 0x280 处读取

生成调用ACE库的文件时,visual studio 2005报错:fatal error LNK1107: 文件无效或损坏: 无法在 0x280 处读取。 在生成文件前,我已经对以下项进行了设置: 1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“ACE.lib ACEd.lib ACE.dll ACEd.dl

2012-04-28 17:22:31 15952 2

转载 /MTd /MD /MDd

在编译ATL工程后,生成的dll在本电脑上能用,在别人的电脑上不能用。通过Depends工具分析一下,原来是编译选项没有选对,别的电脑上没有我生成的dll需要的基础dll文件,选成静态链接库就好了。故而总结一下几个编译选项,主要来自于参考1中链接网址;当然,更详细的介绍可以参见参考2中microsoft网址上介绍。1、VC编译选项 多线程(/MT)多线程调试(/MTd)多线

2012-04-28 14:27:02 806

转载 C语言文件操作函数大全

C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值   fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf

2012-04-27 17:43:55 388

转载 内核对象的创建和使用

1、进程内核对象句柄表2、创建与关闭内核对象3、进程间内核对象句柄的共享  1、进程内核对象句柄表当一个进程初始化时,系统会为它分配一张内核对象句柄表。这个表只用于管理内核对象句柄。GDI和用户对象不会影响到这张表。表中的每一项有4个域。  即句柄ID,对象内存地址,访问屏蔽位,标志位。 当一个进程初始化时,句柄表为空。 现在假设你调用CreateFile函数创建一

2012-04-25 09:28:23 463

转载 线程的创建与退出

线程由两部分构成: 线程内核对象:操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。 线程堆栈:它用于维护线程在执行代码时需要的所有函数参数和局部变量。   我们必需要知道一个事实 ----- 进程( WINDOWS 中)是不能被调度的。通常所说的调度,都是对线程而言的。进程仅仅是线程的容器,是系统统分配资源的单位。 这样,线程自身不会分配资源。同一进程

2012-04-25 09:25:19 916

原创 VC2005 中CString 的FormatV乱码问题

CString::FormatVvoid FormatV( LPCTSTRlpszFormat, va_listargList );ParameterslpszFormatA format-control string.argListA list of arguments to be passed.这个函数特别方便,很适合在实现一个变参的函数中使用,它能帮助我们把多

2012-04-24 16:27:20 1427

原创 HEAP CORPUPTION DETECTED

首先说明一下什么是Heap Corruption。当输入超出了预分配的空间大小,就会覆盖该空间之后的一段存储区域,这就叫Heap Corruption。这通常也被用作黑客攻击的一种手段,因为如果在该空间之后的那段存储区域如果是比较重要的数据,就可以利用Heap Corruption来把这些数据修改掉了,后果当然可想而知了。        在VC里面,用release模式编译运行程序的时候,堆分

2012-04-23 21:47:51 659

转载 WSAWaitForMultipleEvents

WSAWaitForMultipleEvents函数  熟悉WSAEventSelect模型的朋友对这个函数肯定不会陌生,不对,其实大家都不应该陌生,这个函数与线程中常用的WaitForMultipleObjects函数有些地方还是比较像的,因为都是在等待某个事件的触发嘛。  因为我们需要事件来通知我们重叠操作的完成,所以自然需要这个等待事件的函数与之配套。  DWORD

2012-04-23 21:45:37 5009

转载 标准库String的用法

标准C++中的string类的用法总结相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C+

2012-04-23 21:42:13 446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除