GetObject函数用于从指定的图形对象中获取信息,原型如下:
int GetObject(
__in HGDIOBJ hgdiobj, //图形对象的句柄
__in int cbBuffer, //将写入到缓冲区中的图形对象信息的字节数
__out LPVOID lpvObject //指向接收图形对象信息的缓冲区的指针
);
当函数执行成功且参数lpvObject为NULL时,返回值是保存获取的信息的缓冲区需要的字节数;
当函数执行成功且参数lpvObject是有效地指针时,返回值是存储到缓冲区中的数据的字节数;
当函数执行失败时,返回值是0。
实例代码如下,使用GetObject函数获取指定位图的大小:
/********************************************************************
* 获取指定位图的宽和高
********************************************************************/
inline void GetBitmapSize(HBITMAP hBitmap, int& nWidth, int& nHeight)
{
BITMAP bm;
::GetObject(hBitmap, sizeof(BITMAP), (PSTR)&bm);
nWidth = bm.bmWidth;
nHeight = bm.bmHeight;
}