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对象,使用者不需要撤销。
栏 目:C语言
下一篇:C++堆排序算法的实现方法
本文标题:VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析
本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/3511.html
您可能感兴趣的文章
- 01-10深入理解链表的各类操作详解
- 01-10用C++实现DBSCAN聚类算法
- 01-10深入理解C/C++混合编程
- 01-10深入sizeof的使用详解
- 01-10深入探讨C++父类子类中虚函数的应用
- 01-10用C++实现strcpy(),返回一个char*类型的深入分析
- 01-10利用ace的ACE_Task等类实现线程池的方法详解
- 01-10深入理解:Java是类型安全的语言,而C++是非类型安全的语言
- 01-10c++友元函数与友元类的深入解析
- 01-10c++中拷贝构造函数的参数类型必须是引用
阅读排行
本栏相关
- 04-02c语言函数调用后清空内存 c语言调用
- 04-02func函数+在C语言 func函数在c语言中
- 04-02c语言的正则匹配函数 c语言正则表达
- 04-02c语言用函数写分段 用c语言表示分段
- 04-02c语言中对数函数的表达式 c语言中对
- 04-02c语言编写函数冒泡排序 c语言冒泡排
- 04-02c语言没有round函数 round c语言
- 04-02c语言分段函数怎么求 用c语言求分段
- 04-02C语言中怎么打出三角函数 c语言中怎
- 04-02c语言调用函数求fibo C语言调用函数求
随机阅读
- 04-02jquery与jsp,用jquery
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10delphi制作wav文件的方法
- 01-10SublimeText编译C开发环境设置
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-11ajax实现页面的局部加载
- 01-10C#中split用法实例总结
- 01-10使用C语言求解扑克牌的顺子及n个骰子