GetObject()

转载 2013年12月02日 18:23:51

函数简介

函数功能:该函数得到指定图形对象的信息,根据图形对象,函数把填满的或结构,或表项(用于逻辑调色板)数目放入一个指定的缓冲区。

函数原型:int GetObject(HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject);

参数:

hgdiobj:指向感兴趣的图形对象的句柄,它可以是这样的一个句柄:一个逻辑位图、一个刷子、一种字体、一个调色板、笔或通过调用CreateDIBsection函数创建的与设备无关位图。

cbBuffer:指定将要写到缓冲区的信息的字节数目。

lpvObject:指向一个缓冲区的指针,该缓冲区将要检索指定图形对象的信息。

下面列出的是缓冲区为每种图形对象类型可接收的信息和类型,可用hgdiobj来指定,写入*lpvObject: HBITMAP BITMAP。

HBITMAP:如果cbBuffer被设置为sizeof(DIBSECTION)或sizeof(BITMAP),则从对CreatDIBSection函数的DIBSECTION调用中返回。

HPALETTE:逻辑调色板入口数的WORD数目。

HPEN:从对ExtCreatePen函数的LXTLOGPEN调用中返回。

HPENLOGPEN; HBRUSH LOGBRUSH; HFONT LOGFONT

如果lpvObject参数为Null,则函数返回值为指定图形对象需要把信息贮存到缓冲区的字节数目。

返回值:如果函数调用成功,且lpvObject为一个有效指针,则返回值为贮存到缓冲区的字节数目;如果函数调用成功,且lprObject为Null,则返回值为需要容纳的贮存到缓冲区的信息字节数目;如果函数调用失败,则返回值为0。

Windows NT:若想获得更多错误信息,可调用GetLastError函数。

注释:lpvObject参数指向的缓冲区一定要足够大以接收图形对象的信息。

如果hgdiobj标识一个由调用CreateDIBSection创建的位图,且指定的缓冲区足够大,则GetObject函数返回一个DIBSECTION结构。另外,DIBSECTION中的BITMAP结构中的bmBits元素含有一个指向位图位值的指针

如果hgdiobj标识了一个通过其他途径创建的位图,则GetObject只返回位图的宽、高和颜色格式信息,通过调用GetDIBitsGetBitmapBits函数可以得到位置的位值。

如果hgdiobj标识了一个逻辑调色板,则GetObject检索一个2字节的整数,该整数指定调色板中的项数,函数不检索定义调色板的LOGPALETTE结构,为检索有关调色板项的信息,应用程序可以调用GetPaletteEntries函数。

Windows CE:在Windows CE 1.0中,当用在DIB上中,GetObject总返回一个BITMAP。Windows CE 1.0不支持lpvObject参数的HPALETTE值。此函数在Windows CE 2.0与在Windows桌面上一样。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib;Unicode:在Windows NT上实现为Unicode和ANSI两种版本。

程序示例

下面是在应用程序中获取位图文件*.bmp的大小信息的核心代码:

HBITMAP hBitmapImag;

BITMAP bitmap ;

int nWidth, nHeight;

hBitmapImag = LoadBitmap (hInstance, TEXT ("D:\\photos\\Matthew.jpg")) ;

GetObject (hBitmapImag, sizeof (BITMAP), &bitmap) ;

nWidth = bitmap.bmWidth;

nHeight = bitmap.bmHeight;

///////////////

// your code

///////////////

DeleteObject (hBitmapImag);

oracle 数据库,通过resultSet.getObject()获取时间类型截断的问题的解析(格式化时间不能完全输出,也就是只能到日,小时后面的没有了)

一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期、时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别,如果你使用9...
  • Ydeping
  • Ydeping
  • 2011年08月23日 20:25
  • 2384

利用GetObject("WinMgmts:")获取系统信息

转自:http://www.cnblogs.com/dongzhiquan/archive/2010/09/12/1994556.html  有补充 用WMI对象列出系统所有进程: ----I...

GetObject

函数功能:该函数得到指定图形对象的信息,根据图形对象,函数把填满的或结构,或表项(用于逻辑调色板)数目放入一个指定的缓冲区。   函数原型:int GetObject(HGDIOBJ hgd...
  • pjz969
  • pjz969
  • 2012年08月09日 18:53
  • 232

VC中GETobject用法

该函数得到指定图形对象的信息,根据图形对象,函数把填充的 BITMAP, DIBSECTION, LOGBRUSH,LOGFONT, 或 LOGPEN 结构体放入一个指定的缓冲区。 原型: ...

Oracle数据库,resultSet.getObject获取时间类型问题的解析

原文:http://www.blogjava.net/midea0978/archive/2008/06/13/207655.html#Post 一般的数据库中,DATE字段仅仅表示日期,不包括日期...
  • yin_jw
  • yin_jw
  • 2014年11月13日 13:17
  • 3631

spring中FactoryBean中的getObject()方法的作用

FactoryBean接口定义了以下3个接口方法:     Object getObject():返回有FactoryBean创建的Bean实例,如果isSingleton()返回true,则该...

Caused by: java.lang.NoSuchMethodError: ....SchedulerFactoryBean.getObject()Lorg/quartz/Scheduler

Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframewo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GetObject()
举报原因:
原因补充:

(最多只允许输入30个字)