自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VC6.0和VS2003对CWinThread类消息映射的不同

在CWinThread类中,vc6.0中添加消息,在消息映射中添加ON_MESSAGE(MsgId,OnFun),消息处理函数的格式为:LRESULT OnFun(WPARAM wParam,LPARAM lParam);在vs2003中,消息映射为:ON_THREAD_MESSAGE(MsgId,OnFun),消息处理函数的格式为:void OnFun(WPARAM wParam,L

2011-06-03 15:42:00 652

转载 MFC子窗口和父窗口(SetParent,SetOwner)

<br />一、概念和区别 <br />    在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。<br />    所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥有/被拥有关系,后者称之为父/子关系。在这篇文字中,我把owner窗口称之所有者窗

2011-05-17 18:17:00 550

转载 CString类的GetBuffer,ReleaseBuffer 函数

<br /><br />CString str = "abcde/0cde";<br />输出字符串的值为: abcde<br />而字符串的长度为 s.GetLength() 的值为: 5<br />这是因为CString对象在赋值时只检查到'/0',后面的忽略了, 也就是说实际对象str内容为"abcde".<br />而str真正的存储空间为6(字符串以'/0'结尾).<br />所以说在字符长度和实际的空间是不一样的. 好!别跑!<br />请看下面有趣的程序:<br /> <br />CStrin

2011-05-16 13:13:00 617

转载 常见RGB颜色表

<br /><br />RGB值RGB值RGB值黑色000#000000黄色2552550#FFFF00浅灰蓝色176224230#B0E0E6象牙黑413633#292421香蕉色22720787#E3CF57品蓝65105225#4169E1灰色192192192#C0C0C0镉黄25515318#FF9912石板蓝10690205#6A5ACD冷灰128138135#808A87dougello23514285#EB8E55天蓝135206235#87CEEB石板灰112128105#708069fo

2011-05-12 15:16:00 941

转载 提取CImageList中的图片到CBitmap,图片缩放(转)

<br /><br />功能简介:使用 CImageList 类的 Add 方法将图片资源加入,而后将资源读取出来,图片资源缩放。<br />1. 生成 Bitmap 资源。<br />2. 创建一个 CImageList 对象。<br />3. 将 Bitmap 图片资源加入到 CImageList  中。<br />4. 得到 CImageList 中的图片资源。<br />5. 缩放图片。<br />// 生成 Bitmap 资源<br />CBitmap m_Bitmap;<br />m_Bitma

2011-05-11 17:33:00 1121

原创 OnCreate和PreSubclassWindow摘录

<br /><br />1.在对话框模板添加控件和动态创建控件对PreSubclassWindow和OnCreate调用的不同<br />通过在对话框模板添加控件不会调用控件的OnCreate函数,程序生成对话框最终是调用windows api的CreateDialog或者DialogBox去创建的,这样在对话框创建的时刻,所有控件都是标准的windows控件,所以那时候的消息WM_CREATE也只会触发默认的窗口回调函数,而不会调用到子类的OnCreate。然后要怎么把这个控件替换成自定义的控件,其实只要

2011-05-03 18:10:00 2181

转载 VC中动态添加控件

<br /><br />动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。<br />一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不需要调用Create()函数来创建。 而创建动态控件有很大不同,以下以按钮为例,看一下动态控件的创建

2011-05-03 17:33:00 2761

转载 Create your own controls - the art of subclassing

<br /><br />By Chris Maunder<br /><br />An introduction to subclassing the Windows common controls using MFCIntroduction<br />程序员们可以用许多windows通用控件提供的功能方便的编程,这些控件从list到button甚至是进度条都是可以直接拿来用的.即便如此,仍然有时候你所选择的标准控件并不够用.欢迎学习子类化控件这个经典技法. <br /><br />子类化一个窗体控件同子类化

2011-05-03 17:31:00 681

转载 DECLARE_DYNAMIC DECLARE_DYNCREATE DECLARE_SERIAL

<br /><br />DECLARE_DYNAMIC : 对应得类可以用RUNTIME_CLASS宏得到一个CRuntimeClass结构,可以用IsKindof判断其类型,类似于typeof <br /><br /><br />DECLARE_DYNCREATE:表示这个类可以用上面那个CRuntimeClass创建自身, <br /><br />CRuntimeClass * pClass = RUNTIME_CLASS(CMyClass); <br />CMyClass * pObj = (CMyC

2011-05-03 17:28:00 784

转载 OleLoadPicture

用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCreatePictureIndirect来加载图片,不过相比而言OleLoadPicture函数简化了基于流的IPicture对象的创 建)。  下面是示例代码:(注:由于只是用来示例,代码中省去了出错情况的处理) 

2011-04-26 14:25:00 870

转载 VC 双缓冲绘图

在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。    因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。于是我们就看到了闪烁现象。    我们会很自然的想到,避免背景色的填充是

2011-04-25 13:30:00 438

转载 PreSubclassWindow作用

<br /><br />通常情况下窗口是由用户创建的 <br /><br />CWnd::Create(..) <br />●在此流程中,MFC提供一个机会"PreCreateWindow()供用户在创建前作点手脚 <br /><br />而对于对话框等,窗口是通过subclass方式交给用户的 <br />系统读入对话框模板,建立其中各个子窗口 <br /><br />然后将各子窗口的 消息处理函数替换成 对应的C++对象 的消息处理函数 (Subclass:子类化,或"接管") ,然后,这个子窗口就会按

2011-04-21 09:26:00 619

转载 CToolTipCtrl使用

<br /><br />ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。<br />一般用法步骤:<br />添加CToolTipCtrl成员变量 m_tt。<br />在父窗口中调用EnableToolTips(TRUE);<br />在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串CToolTipCtrl::AddTool(pW

2011-04-21 09:21:00 463

转载 CInternetSession的简单使用

<br />CInternetSession<br />  使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释

2011-04-19 14:47:00 4532

转载 C++字符串完全指引之二 —— 字符串封装类

<br /><br />原著:Michael Dunn<br /><br />作者:Chengjie Sun<br /><br />原文出处:CodeProject:The Complete Guide to C++ Strings, Part II<br /><br /><br /> 引言<br /><br />  因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某些场合下我们不知道该使用哪个字符串

2011-04-19 09:36:00 681

转载 C++字符串完全指引之一 —— Win32 字符编码

<br /><br />原著:Michael Dunn<br /><br />翻译:Chengjie Sun<br /><br /><br />原文出处:CodeProject:The Complete Guide to C++ Strings, Part I<br /><br /> 引言<br /><br />  毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的

2011-04-19 09:34:00 1009

转载 skin magic

典型组合是3个文件: SkinMagicTrial.h 头文件,在需要换肤的类定义文件中包含 SkinMagicTrial.lib 静态库文件,在需要换肤的类定义文件中引入 SkinMagicTrial.dll 动态库文件,放在项目输出目录(exe所在目录)或系统目录中 参考SkinMagic的Demo例程就能看出用法很简单 // 初始化SkinMagic库 InitSkinMagicLib( AfxGetInstanceHandle(), _T("MYEXE") , NULL,NUL

2011-04-18 11:25:00 441

转载 分割文件名 _splitpath() 函数

<br />_splitpath 函数分割路径为:驱动器,目录,文件名(五扩展名),扩展名. 使用_makepath 完成驱动器,目录,文件名(五扩展名),扩展名合成一个全路径.<br />//设你用文件对话框取得了一个路径 c:/file/a.c 存储在 char path[]中.<br /><br />char drive[4];//驱动器号 MAX_DRIVER<br />char dir[MAX_PATH];//目录<br />char title[MAX_PATH];//文件标题<br />cha

2011-04-18 11:19:00 579

转载 GetModuleFileName 函数

<br /><br />GetModuleFileName<br />HMODULE hModule = ::GetModuleHandle(NULL);<br />if (hModule != NULL)<br />{<br />    ::GetModuleFileName(hModule, strRet.GetBuffer(MAX_PATH), MAX_PATH);<br />    strRet.ReleaseBuffer();<br />}<br />GetModuleFileName函数在 开发

2011-04-18 10:55:00 766

转载 VC通过命令行参数禁止用户双击运行exe

<br /><br /> 由于项目需要,需要在主程序中调用一个外部A.exe程序,而A.exe程序因为通过开发商提供的SDK来编写的,并且无法与现有项目的开发平台兼容,不得已只有通过主程序利用CreateProccess来调用。但是前段时间发现一个问题,如果用户直接在主程序目录下双击运行A.exe,可能会导致程序界面某些地方显示出现问题。<br />        基于上面的问题,要想办法做到:用户双击运行主程序目录下的A.exe后,A.exe不会直接运行,只有通过主程序相应的菜单操作,传入特定的命令行参数

2011-04-18 10:47:00 914

转载 ActiveX调用 js脚本方法

<br />Q:<br />ActiveX中如何调用Script函数?如何访问Document,Browser,浏览器地址,Cookie...<br /><br />A:<br />在ATL写的ActiveX中,重载IOleObject::SetClientSite()方法。<br />http://support.microsoft.com/kb/181678/en-us<br />在MFC写的ActiveX中,重载COleObject::OnSetClientSite()方法。<br />http://

2011-04-18 09:10:00 3614

空空如也

空空如也

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

TA关注的人

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