马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
函数功能:
GetObject 函数用于获得指定图形对象的信息。
API 函数原型:
注释:_In_ 说明该参数是输入的,__Out__ 说明该参数是输出的。int GetObject(
_In_ HGDIOBJ hgdiobj,
_In_ int cbBuffer,
_Out_ LPVOID lpvObject
);
参数解析:
参数 | 含义 | hgdiobj | 1. 指定目标图形对象的句柄
2. 它可以是这样的一个句柄:逻辑位图、画刷、字体、调色板、画笔或通过调用 CreateDIBsection 函数创建的与设备无关位图 | cbBuffer | 指定将要写到缓冲区的信息的字节数 | lpvObject | 指向一个缓冲区的指针(该缓冲区将用于存放指定图形对象的信息) |
下边列出的是缓冲区获得的每种图形对象的信息类型(通过 hgdiobj 参数指定)
对象类型 | 写入到缓冲区的数据 | HBITMAP | BITMAP 结构 | HBITMAP(通过调用 CreateDIBSection 函数获得) | 1. DIBSECTION 结构(如果 cbBuffer 参数的值被设置为 sizeof (DIBSECTION))
2. BITMAP 结构(如果 cbBuffer 参数的值被设置为 sizeof (BITMAP)) | HPALETTE | 逻辑调色板的颜色数(WORD 类型) | HPEN(通过调用 ExtCreatePen 函数获得) | EXTLOGPEN 结构 | HPEN | LOGPEN 结构 | HBRUSH | LOGBRUSH 结构 | HFONT | LOGFONT 结构 |
注释:lpvObject 参数指向的地址必须是 4 字节的倍数,否则 GetObject 函数调用失败。
返回值:
1. 如果函数调用成功,且 lpvObject 参数是一个有效的指针,则返回值是存储到缓冲区的字节数;
2. 如果函数调用成功,而 lpvObject 参数是 NULL,则返回值是需要存储到缓冲区的信息的字节数;
3. 如果函数调用失败,返回值是 0。
备注:
1. lpvObject 参数指向的缓冲区一定要足够大以接收图形对象的信息。
2. 如果 hgdiobj 参数指定一个由调用 CreateDIBSection 函数创建的位图,且指定的缓冲区足够大,则 GetObject 函数返回一个 DIBSECTION 结构。
3. 如果 hgdiobj 参数指定一个通过其他途径创建的位图,则 GetObject 只返回位图的宽、高和颜色格式信息,通过调用 GetDIBits 或 GetBitmapBits 函数可以得到位置的位值。
4. 如果 hgdiobj 参数指定一个逻辑调色板,则 GetObject 获得一个 2 字节的整数,该整数指定调色板中的项数,函数不会获得定义调色板的 LOGPALETTE 结构,为了获得有关调色板项的信息,应用程序可以调用 GetPaletteEntries 函数。
【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
|