VC编程控件类HTControl之CHTGDIManager GDI资源管理类 VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

VC编程控件类HTControl之CHTGDIManager GDI资源管理类 VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析

  2021-03-19 我要评论
想了解VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析的相关内容吗,在本文为您仔细讲解VC编程控件类HTControl之CHTGDIManager GDI资源管理类的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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对象,使用者不需要撤销。

猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们