11 2011 档案
摘要:http://blog.csdn.net/dofty/article/details/1190606初识Visual Leak Detector灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时,其破坏力是惊人的,从性能下降到内存耗尽,甚至会影响到其他程序的正常运行。另外内存问题的一个共同特点是,内存问题本身并不会有
阅读全文
摘要:DWORD WaitForMultipleObjects( DWORD nCount, const HANDLE* lpHandles, BOOL bWaitAll, DWORD dwMilliseconds);其中参数nCount 句柄的数量 最大值为MAXIMUM_WAIT_OBJECTS(64)HANDLE 句柄数组的指针。HANDLE 类型可以为(Event,Mutex,Process,Thread,Semaphore )数组BOOL bWaitAll 等待的类型,如果为TRUE 则等待所有信号量有效在往下执行,FALSE 当有其中一个信号量有效时就向下执行DWORD dwMillis
阅读全文
摘要:也许这是Windows的一个bug:我们的程序在屏幕右下角托盘区有对应的图标(调用Shell_NotifyIcon函数),如果由于意外等原因,Windows的explorer进程会重启一下,这时候我们发现自己的程序的托盘区图标没有恢复回来。-------------------------------------------------------------------------------------------------下面是解决方法,基于在VC6.0的MFC(对话框类名为CMyDlg):1. 在MyDlg.h文件的开头处定义消息WMEX_TASKBARCREATED:const U
阅读全文
摘要:写博客写了六七年,偷懒成我这样,加起来居然也已经有了数百篇文章几十万字。后来各种社交网站带走了一半人,剩下的一半人这两年也被各个门户网站的微博带走了。我左边的链接里全是一两年没有再更新过的朋友,不止是人走茶凉了,茶都干了,只剩下杯具还放在那里,估计大部分连自己的登录名和密码都忘记了。我但我更喜欢这样,就像你一直在这里,忽然之间拥来一批人,和你干着一样的事,忽然他们又都走了,这里并不冷清,但周围不再纷杂。很多朋友问我,为什么不开微博。其实我开过几天微博,后来觉得不适合,便把账号关了。并不是一百四十个字不够我写的,谁高兴写一千四百个字啊。这要是写文章,还得想半天,一百四十个字,就只用想些佳句就成。
阅读全文
摘要:http://topic.csdn.net/u/20070828/01/417688f1-556d-4ec2-8d9f-44d136c5bae7.html
阅读全文
摘要:函数原型 int DrawText( HDC hDC, // 设备描述表句柄 LPCTSTR lpString, // 将要绘制的字符串 int nCount, // 字符串的长度 LPRECT lpRect, // 指向矩形结构RECT的指针 UINT uFormat // 正文的绘制选项 );参数 hdc: [输入]设备环境句柄。 lpString: [输入]指向将被写入的字符串的指针,如果参数nCount是-1,则字符串必须是以/0结束的。如果uFormat包含DT_MODIFYSTRING,则函数可为此字符串增加4个字符,存放字符串的缓冲区必须足够大,能容纳附加的...
阅读全文
摘要:其实我还是参考了网上的代码: 1 //自绘右键菜单 2 void CDemoStandardDlg::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) 3 { 4 if (nIDCtl == 0) 5 { 6 lpMeasureItemStruct->itemWidth = 145; 7 lpMeasureItemStruct->itemHeight = 25; 8 } 9 10 CStandardDialog::On...
阅读全文
摘要:实现功能: 每个一个ListItem都有两个图标,点击“X”图标可以删除该项。 鼠标经过某一个项时,该项更换背景色。代码:<仅作参考,有什么不好的地方,望大神指教!> 1 // OwnerDrawListBox.cpp : implementation file 2 // 3 4 #include "stdafx.h" 5 #include "OwnerDrawListBox.h" 6 #include "resource.h" 7 8 #ifdef _DEBUG 9 #define new DEBUG_NEW 10 #u
阅读全文
摘要:说明:以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的总结:消息传递的方法一:使用ON_MESSAGE使用ON_MESSAGE响应消息,必须配合定义消息#define WM_MY_MESSAGE (WM_USER+100)对于发送消息者-MyMessageDlg,在其MyMessageDlg.h中,定义#define WM_MY_MESSAGE (WM_USER+100)在其MyMessageDlg.cpp中要先添加:#include "MainFrm.h"因为使用了CMain
阅读全文
摘要:MFC中为ToolTips生成了一个类CToolTipCtrl,一般使用步骤如下: 1、 添加CToolTipCtrl成员变量 2、在父窗口中调用EnableToolTips(TRUE); 3、在窗口的OnCreate或者Dlg的OnInitialDlg中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串 CToolTipCtrl::AddTool() 4、 重载父窗口的 BOOL PreTranslateMessage(MSG* pMsg) ,在函数中调用CToolTipCtrl成员变量的RelayEvent() 正常情况下,经过上面的四步,当鼠标移动到窗口上时自动显示.
阅读全文
摘要:最近一直在写MFC,今天碰到一个很纠结的问题,在win7下拖动对话框的时候一直Crash。后来一查才知道是CDC::FromHandle 的问题我也是在网上找了很久才解决。首先我们看一下http://topic.csdn.net/u/20071204/10/03847756-2903-48e4-b5e5-1608ae8aa139.html中提到的:CDC::FromHandle(lpDrawItemStruct->hDC);你可以参考MFC代码中FromHandle的实现,这个函数是在公共的CMapHandle中查找句柄对应的对象如果找不到相关的对象,FromHandle在CMapHan
阅读全文
摘要:问: 怎么取得EditBox的焦点的问题,是在窗口初始化的时候设置,用setfocus不行?答:在资源编辑窗口中按Ctrl+D,将那个EditBox的TabIndex设定为1就可以了。
阅读全文
摘要:一.CString, int, string, char*之间的转换string 转 CStringCString.Format("%s", string.c_str());char 转 CString CString.Format("%s", char*);char 转 string string s(char *);string 转 char * char *p = string.c_str();CString 转 string string s(CString.GetBuffer());1.string -> CString CString.
阅读全文
摘要:主要还是弄清Nodelist和Node的关系。 1 #include <iostream> 2 #include <tchar.h> 3 4 #import <msxml3.dll> 5 6 int _tmain(int argc, _TCHAR* argv[]) 7 { 8 CoInitialize(NULL); 9 //读取XML10 MSXML2::IXMLDOMDocumentPtr spXMLDoc;11 spXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));12 spXMLDoc->
阅读全文
摘要:XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML 4.0以上),所以优先使用DOM。DOM是以COM形式提供的,VC++里调用DOM可以分3种方法:1、MFC里用CComPtr调用2、SDK里直接调用DOM接口3、SDK里用智能指针调用这3种方法本质上是一样的,区别只不过在于需要编码的多少而已,
阅读全文