VC編程控件類HTControl之CHTGDIManager GDI資本治理類用法解析。本站提示廣大學習愛好者:(VC編程控件類HTControl之CHTGDIManager GDI資本治理類用法解析)文章只能為提供參考,不一定能成為您想要的結果。以下是VC編程控件類HTControl之CHTGDIManager GDI資本治理類用法解析正文
本文重要引見了VC編程控件類HTControl的CHTGDIManager GDI資本治理類用法,MFC供給的CBitmap類的LoadBitmap接口只能從EXE外部獲得位圖,然則許多情形下須要從EXE內部獲得,CHTGDIManager類供給了從EXE內部獲得位圖的接口,應用辦法以下:
m_hBmpBtnCloseNormal = m_HTGDIManager.GetBitmap(_T(".\\pic\\btn_close_normal.png"));
#if !defined(__CHTGDIMANAGER_H__) #define __CHTGDIMANAGER_H__ class AFX_CLASS_EXPORT CHTGDIManager { public: CHTGDIManager(void); ~CHTGDIManager(void); /**************************************************************************** | 函數功效:從文件中獲得位圖 | | 輸出參數: | | szPicPath: 圖片文件途徑 | | pRect: 取圖片的一部門 NULL表現取全部圖片 | | 輸入參數:無 | | 前往值: 勝利前往位圖句柄 掉敗前往NULL | | 說 明:此類析構時會刪除此位圖,應用者不消刪除 | ****************************************************************************/ HBITMAP GetBitmap(TCHAR* szPicPath, RECT* pRect = NULL); /**************************************************************************** | 函數功效:從資本中獲得位圖 | | 輸出參數: | | iPicId: 資本ID | | pRect: 取圖片的一部門 NULL表現取全部圖片 | | 輸入參數:無 | | 前往值: 勝利前往位圖句柄 掉敗前往NULL | | 說 明:此類析構時會刪除此位圖,應用者不消刪除 | ****************************************************************************/ HBITMAP GetBitmap(int iPicId, RECT* pRect = NULL); /**************************************************************************** | 函數功效:獲得指定的字體 | | 輸出參數: | | lHeight:字號 | | lWeight: 粗度 | | szFaceName: 字體稱號 | | bUnderline: 能否帶底橫線 | | bItalic: 能否斜體 | | 輸入參數:無 | | 前往值: 勝利前往字體句柄 掉敗前往NULL | | 說 明:此類析構時會刪除此字體,應用者不消刪除 | ****************************************************************************/ HFONT GetFont(long lHeight, long lWeight, TCHAR* szFaceName, BOOL bUnderline = FALSE, BOOL bItalic = FALSE); void DeleteBitmap(HBITMAP hBitmap); void DeleteAllBitmap(HBITMAP hBitmap); void DeleteFont(HFONT hFont); void DeleteAllFont(HFONT hFont); private: HBITMAP* m_hBitmap; HFONT* m_hFont; int m_iBitmapIndex; int m_iFontIndex; int m_iBitmapCount; int m_iFontCount; }; #endif //!__CHTGDIMANAGER_H__
MFC供給了各類GDI對象的封裝類,很多習氣WIN32 API 開辟的(SDK開辟)能夠其實不愛好應用這些類(橫豎我是不愛好用,小我以為這些類封裝的其實不怎樣好),而是習氣應用API直接創立,何況很多情形下須要直接應用這些GDI對象的句柄。GDI對象的撤消,GDI對象應用完成後是要撤消的,以防資本洩露。CHTGDIManager在類析構時撤消了它所創立的一切GDI對象,應用者不須要撤消。