GetObject函数获取有关指定图形对象的信息。根据图形对象,该函数将填充BITMAP,DIBSECTION,EXTLOGPEN,LOGBRUSH,LOGFONT或LOGPEN结构或表条目数(对于逻辑调色板),进入指定的缓冲区。
int GetObject(
HGDIOBJ 【hgdiobj】, | //处理感兴趣的图形对象 |
INT 【cbBuffer】, | //对象信息的缓冲区大小 |
LPVOID 【lpvObject】 | //指向缓冲区的对象信息的指针 |
); |
参数
【hgdiobj】
感兴趣的图形对象的句柄。这可以是以下之一的句柄:通过调用CreateDIBSection函数创建的逻辑位图,画笔,字体,调色板,笔或与设备无关的位图。
【cbBuffer】
指定要写入缓冲区的信息的字节数。
【lpvObject】
指向要接收有关指定图形对象的信息的缓冲区。
下表显示了您可以使用【hgdiobj】指定的每种图形对象类型的缓冲区接收的信息类型:
【hgdiobj类型】 | 数据写为* 【lpvObject】 |
HBITMAP | BITMAP |
HBITMAP从致电CreateDIBSection | DIBSECTION,如果的sizeof设置为的sizeof(DIBSECTION)或BITMAP,如果【cbBuffer】设置为的sizeof(BITMAP) |
HPALETTE | WORD逻辑调色板中的条目数 |
HPEN从致电ExtCreatePen | EXTLOGPEN |
HPEN | LOGPEN |
HBRUSH | LOGBRUSH |
HFONT | LOGFONT |
如果【lpvObject】参数为NULL,则函数返回值是将其写入指定图形对象的缓冲区的信息所需的字节数。
返回值
如果函数成功,并且【lpvObject】是有效的指针,则返回值是存储到缓冲区中的字节数。
如果函数成功,并且【lpvObject】为NULL,则返回值是保存函数将存储到缓冲区中的信息所需的字节数。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
【lpvObject】参数指向的缓冲区必须足够大以接收有关图形对象的信息。
如果【hgdiobj】标识通过调用CreateDIBSection创建的位图,并且指定的缓冲区足够大,则GetObject函数返回DIBSECTION结构。此外,BITMAP {BITMAP} {BITMAP}中{BITMAP}结构中的BITMAP成员将包含指向位图的位值的指针。
如果【hgdiobj】识别出任何其他方式创建的位图,GetObject仅返回位图的宽度,高度和颜色格式信息。您可以通过调用GetDIBits或GetBitmapBits函数来获取位图的位值。
如果【hgdiobj】标识一个逻辑调色板,GetObject将检索一个两个字节的整数,指定调色板中的条目数。该函数不检索定义调色板的LOGPALETTE结构。要检索有关调色板条目的信息,应用程序可以调用GetPaletteEntries函数。
也可以看看
CreateDIBSection, GetBitmapBits, GetDIBits, GetPaletteEntries, GetRegionData, BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT, LOGPALETTE, LOGPEN