VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析
2019/7/10 23:15:04
本文主要是介绍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对象,使用者不需要撤销。
这篇关于VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-05feign默认connecttimeout和readtimeout是多少-icode9专业技术文章分享
- 2024-07-05idea控制台,日志太多,导致部分想看得日志被刷走 搜不到-icode9专业技术文章分享
- 2024-07-05The server selected protocol version Tls10 is not accepted by client preferences [TLs12]-icode9专业技术文章分享
- 2024-07-05怎么清理项目缓存-icode9专业技术文章分享
- 2024-07-04安装 Eyoucms详细图文教程-icode9专业技术文章分享
- 2024-07-04ueditor 复制文章时,图片的链接是一个下载图片地址,该如何处理?-icode9专业技术文章分享
- 2024-07-04怎样判断host有没有对wordpress有缓存呢-icode9专业技术文章分享
- 2024-07-04具有编译功能的系统make后,无法ssh连接-icode9专业技术文章分享
- 2024-07-04make后如何升级ssh-icode9专业技术文章分享
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享