GetObject函数用于从指定的图形对象中获取信息,原型如下:
其中
(1)参数hgdiobj是图形对象的句柄,图形对象可以是如下几种:逻辑位图、刷子、字体、调色板、画笔或者由函数CreateDIBSection创建的设备无关位图;
(2)参数cbBuffer是即将写入到缓冲区中的图形对象信息的字节数;
(3)参数lpvObject是指向接收图形对象信息的缓冲区的指针,下表是每一种图形对象对应获取到的缓冲区中的信息:
返回值:
当函数执行成功且参数lpvObject为NULL时,返回值是保存获取的信息的缓冲区需要的字节数;
当函数执行成功且参数lpvObject是有效地指针时,返回值是存储到缓冲区中的数据的字节数;
当函数执行失败时,返回值是0。
实例代码如下,使用GetObject函数获取指定位图的大小:
GradientFill函数用于填充矩形和三角形结构,原型如下:
其中
(1)参数hdc是目标设备上下文的句柄;
(2)参数pVertex是指向存储TRIVERTEX结构数据的数组;
(3)参数nVertex是数组pVertex中的顶点数;
(4)参数pMesh在三角形模式中表示存储GRADIENT_TRIANGLE结构数据的数组;在矩形模式中表示存储GRADIENT_RECT结构数据的数组;
(5)参数nMesh是pMesh数组中元素的个数;
(6)参数ulMode指定渐变填充模式,取值如下:
返回值:
函数执行成功时返回TRUE;失败时返回FALSE;
上面函数中使用到了几个结构,下面分别介绍:
1)TRIVERTEX结构包含了颜色信息和位置信息,原型如下:
2)GRADIENT_RECT结构指定了函数GradientFill中参数pVertex数组中的两个点的索引,这两个点分别是一个矩形的左上角和右下角点,结构原型如下:
3)GRADIENT_TRIANGLE结构指定了函数GradientFill函数中pVertex数组中的三个点的索引,这三个点组成一个三角形,结构原型如下:
实例代码如下: