最近自绘了button,edit控件,发现GDI资源泄漏比较厉害 问题已经解决,LoadImage返回的HICON应该用DestroyIcon释放。坑爹的vs2013 msdn,发现很多win32 api都查不了,感觉vs2008 msdn最给力。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是基础吧,MSDN 上说过的:http://msdn.microsoft.com/en-us/library/ms648045.aspxBitmap DeleteObjectCursor DestroyCursorIcon DestroyIcon各种资源的释放方式。 是啊,就是因为离线的msdn查不到这个函数,结果百度,还原别人用的是错的。 VS2010的离线msdn上也没有win32 api的函数 _AFXWIN_INLINE CGdiObject::~CGdiObject(){ AFX_BEGIN_DESTRUCTOR DeleteObject(); AFX_END_DESTRUCTOR}HGDIOBJ CGdiObject::Detach(){ HGDIOBJ hObject = m_hObject; if (hObject != NULL) { CHandleMap* pMap = afxMapHGDIOBJ(); // don't create if not exist if (pMap != NULL) pMap->RemoveHandle(m_hObject); } m_hObject = NULL; return hObject;}BOOL CGdiObject::DeleteObject(){ if (m_hObject == NULL) return FALSE; return ::DeleteObject(Detach());}//class CBitmap : public CGdiObject//_AFXWIN_INLINE BOOL CBitmap::LoadBitmap(LPCTSTR lpszResourceName) { return Attach(::LoadBitmap(AfxFindResourceHandle( lpszResourceName, RT_BITMAP), lpszResourceName));}如果用的是MFC,那建议用GDI/MFC版本 ,位图加载用CBitmap ;如果用WIN32,那么就自己处理释放问题! CBitmap 在析构的时候会自动释放资源; 有关局域网的一些问题. 请问如何让对话框成为单文档程序的主窗口? 小声的问句既生unsigned long何生DWORD Com问题,迷惑??? 网络通信问题 有没有找工作的朋友? 關於文本標簽的問題一直沒解決,不知是分少還是太簡單! MSDN的困惑 基于对话框程序打印预览出错 各位兄弟,小弟遇到一个问题,先谢谢大家了! CFile二进制模式Read的规则问题 MFC 工具栏 修改后 报错
http://msdn.microsoft.com/en-us/library/ms648045.aspxBitmap DeleteObject
Cursor DestroyCursor
Icon DestroyIcon各种资源的释放方式。
是啊,就是因为离线的msdn查不到这个函数,结果百度,还原别人用的是错的。
_AFXWIN_INLINE CGdiObject::~CGdiObject()
{
AFX_BEGIN_DESTRUCTOR DeleteObject(); AFX_END_DESTRUCTOR
}
HGDIOBJ CGdiObject::Detach()
{
HGDIOBJ hObject = m_hObject;
if (hObject != NULL)
{
CHandleMap* pMap = afxMapHGDIOBJ(); // don't create if not exist
if (pMap != NULL)
pMap->RemoveHandle(m_hObject);
} m_hObject = NULL;
return hObject;
}BOOL CGdiObject::DeleteObject()
{
if (m_hObject == NULL)
return FALSE;
return ::DeleteObject(Detach());
}
//class CBitmap : public CGdiObject//
_AFXWIN_INLINE BOOL CBitmap::LoadBitmap(LPCTSTR lpszResourceName)
{ return Attach(::LoadBitmap(AfxFindResourceHandle(
lpszResourceName, RT_BITMAP), lpszResourceName));}
如果用的是MFC,那建议用GDI/MFC版本 ,位图加载用CBitmap ;
如果用WIN32,那么就自己处理释放问题!