CGdiObject 程序员百科

来源:百度文库 编辑:神马文学网 时间:2024/04/30 04:12:39
最新历史版本 :CGdiObject返回词条 编辑时间:11-13 15:51 历史版本编辑者:麦兜 历史版本: 内容长度:7792 图片数:4目录数:0 修改原因:全文编辑
CGdiObject
CObject
└CGdiObject
CGdiObject类为各种Windows图形设备接口(GDI)对象,如位图、区域、画刷、画笔、调色板、字体等提供了一些基本类。我们不会直接构造一个CGdiObject对象,而是使用某一个派生类如CPen或CBrush创建。
#include
CGdiObject类的成员
数据成员 m_hObject 包含附加给对象的HBITMAP,HPALETTE,HRGN,HBRUSH,HPEN或HFONT的句柄
构造函数 CGdiObject 构造一个CGdiObject对象
操作 GetSafeHandle 如果this不是NULL,则返回m_hObject,否则返回NULL
FromHandle 返回指向给定了Windows GDI对象句柄的CGdiObject对象指针
Attach 将一个Windows GDI对象附加给一个CGdiObject对象
Detach 将一个Windows GDI对象从CGdiObject对象上拆下,并返回Windows GDI对象的句柄
DeleteObject 从内存中删除附加给CGdiObject的Windows GDI对象,释放与此对象相关的系统存储空间
DeleteTempMap 删去所有FromHandle建立的临时CGdiObject对象
GetObject 把描述了将Windows GDI对象附加给CGdiObject对象的数据填充到缓冲区
CreateStockObject 获取一个Windows标准的预定义画笔、画刷或字体的句柄
UnrealizeObject 重新设置一个画刷或重新设置一个逻辑调色板
GetObjectType 获取GDI对象的类型
CGdiObject::Attach
BOOL Attach(HGDIOBI hobject);
返回值:如果附加成功,则返回非零值,否则为0。
参数: hObject 一个Windows GDI对象(如HPEN,HBRUSH)的句柄。
说明:将一个Windows GDI对象附加给CGdiObject对象。
CGdiObject::CGdiObject
CGdiObject( );
说明:
构造一个CGdiObject对象。我们从不直接构造一个CGdiObject,而是由派生类构造一个对象,例如CPen或CBrush。
CGdiObject::CreateStockObject
BOOL CreateStockObject(int nIndex);
返回值:如果成功,则返回非零值,否则为0。
参数: nIndex 一个定义了标准对象类的常量,请参阅联机文档“Win32 SDK”中GetStockObject的参数fnObject的描述。
说明:
获取一个Windows标准的预定义画笔、画刷或字体的句柄,以将一个GDI对象附加给一个CGdiObject对象。可与某个派生类同时调用此成员函数,应使派生类与Windows GDI对象的类型相对应,例如,CPen是标准画笔。
CGdiObject::DeleteObject
BOOL DeleteObject( );
返回值:如果GDI对象被成功删除,则返回非零值,否则为0。
说明:
通过释放附加的GDI对象占有的系统存储来删除它们。与CGdiObject对象有关的存储不受此调用的影响。如果CGdiObject对象正被选入设备上下文中,则应用不可对此对象调用DeleteObject。
当一个模式画刷被删除时,与之相关联的位图不被删除。位图必须被独立删除。
CGdiObject::DeleteTempMap
static void PASCAL DeleteTempMap( );
说明:
由CwinApp空闲时间句柄自动调用。DeleteTempMap删除任意由FromHandle创建的临时CGdiObject对象。在删除CGdiObject对象之前,同时解除附加给此CGdiObject对象的所有Windows GDI对象。
CGdiObject::Detach
HGDIOBJ Detach ( );
返回值:
一个被解除的Windows GDI对象的句柄。如果没有附加GDI对象,则返回NULL。
说明:
解除一个CGdiObject对象的Windows GDI对象并返回其句柄。
CGdiObject::FromHandle
static CGdiobject* PASCAL FromHandle(HGDIOBJ hObject);
返回值:一个指向CGdiObject对象的临时或永久性指针。
参数: hObject 一个Windows GDI对象的句柄。
说明:
返回一个给出了句柄的CGdiObject对象指针给Windows GDI对象。如果一个CGdiObject对象还未附加给Windows GDI对象,则一个临时CGdiObject对象被创建并被附加。
直到下次应用在其事件循环中有空闲时间时,临时CGdiObject对象才是可用的。此时所有临时图形对象均被删除。或者说仅在处理一个Windows消息时,临时对象才是可用的。
CGdiObject::GetObject
int GetObject(int nCount,LPVOID lpObject)const;
返回值:获取的字节数。如果发生错误,则返回0。
参数: nCount 指定要拷贝到lpObject缓冲区的字节数。
lpObject 指向用户应用缓冲区的指针以接收信息。
说明:
用定义指定对象的数据填充缓冲区。函数获得一个类型由图象对象决定的数据结构,列表如下所示: 对象 缓冲区类型
CPen LOGPENC
Brush LOGBRUSH
CFont LOGFONT
CBitmap BITMAP
CPalette WORD
CRgn Not supported(不支持)
如果对象是一个CBitmap对象,则函数仅返回宽度、高度和颜色格式,实际位值可由CBitmap::GetBitmapBits获得。
如果对象是一个CPalette对象,函数会返回一个字,此字指定了调色板中入口的个数而不是定义调色板的LOGPALETTEJIE结构。一个应用可以通过调用CPalette::GetPaletteEntries来获得调色板入口的更多信息。
CGdiObject::GetObjectType
UINT GetObjectType( )const;
返回值:如果成功,则返回对象类型,否则为0,可能的值如下: OBJ_BITMAP 位图
OBJ_BRUSH 画刷
OBJ_FONT 字体
OBJ_PAL 调色板
OBJ_PEN 画笔
OBJ_EXTPEN 扩展画笔
OBJ_REGION 区域
OBJ_DC 设备上下文
OBJ_MEMDC 存储设备上下文
OBJ_METAFILE 元文件
OBJ_METADC 元文件设备上下文
OBJ_ENHMETAFILE 扩展元文件
OBJ_ENHMATADC 扩展元文件设备上下文
说明:获取GDI对象的类型。
CGdiObject::GetSafeHandle
HGDIOBJ GetSafeHandle( )const;
返回值:一个附加的Windows GDI对象句柄。如果无附加对象,则返回0。
说明:
站长统计
如果m_hObject不是NULL,则返回m_hObject,否则返回NULL。这是一般句柄接口的一部分,当NULL是合法的或句柄的可用特殊值时十分有用。
CGdiObject::UnrealizeObject
BOOL UnrealizeObject( );
返回值:如果成功,则返回非零值,否则返回零。
说明:
重新设置画刷资源或重新设置逻辑调色板。因为它是CGdiObject类的一个成员函数,所以它仅能为CBrush或CPalette对象所使用。
对于CBrush对象来说,UnrealizeObject指定系统在下一次选择设备上下文时重新设置给定的画刷;如果对象是CPalette对象,它指定系统识别该调色板,即使以前调色板未被识别。当下一次应用调用CDC::RealizePalette函数时,系统完全重新映射逻辑调色板为系统调色板。
站长统计
此函数不可与存储对象一起使用。当一个新的画刷资源被设置(用CDC:: SetBrushOrg函数)时,必须调用此成员函数。UnrealizeObject函数不可被当前选用的画刷或调色板的任何显示上下文调用。
CGdiObject::m_hObject