《Windows API巡礼》のGetObject函数和GradientFill函数

来源:互联网 发布:cf卡数据覆盖无法恢复 编辑:程序博客网 时间:2024/05/29 01:56

GetObject函数用于从指定的图形对象中获取信息,原型如下:

其中

1)参数hgdiobj是图形对象的句柄,图形对象可以是如下几种:逻辑位图、刷子、字体、调色板、画笔或者由函数CreateDIBSection创建的设备无关位图;

2)参数cbBuffer是即将写入到缓冲区中的图形对象信息的字节数;

3)参数lpvObject是指向接收图形对象信息的缓冲区的指针,下表是每一种图形对象对应获取到的缓冲区中的信息:

 

返回值:

当函数执行成功且参数lpvObjectNULL时,返回值是保存获取的信息的缓冲区需要的字节数;

当函数执行成功且参数lpvObject是有效地指针时,返回值是存储到缓冲区中的数据的字节数;

当函数执行失败时,返回值是0

实例代码如下,使用GetObject函数获取指定位图的大小:



GradientFill函数用于填充矩形和三角形结构,原型如下:

其中

1)参数hdc是目标设备上下文的句柄;

2)参数pVertex是指向存储TRIVERTEX结构数据的数组;

3)参数nVertex是数组pVertex中的顶点数;

4)参数pMesh在三角形模式中表示存储GRADIENT_TRIANGLE结构数据的数组;在矩形模式中表示存储GRADIENT_RECT结构数据的数组;

5)参数nMeshpMesh数组中元素的个数;

6)参数ulMode指定渐变填充模式,取值如下:

返回值:

函数执行成功时返回TRUE;失败时返回FALSE

 

上面函数中使用到了几个结构,下面分别介绍:

1TRIVERTEX结构包含了颜色信息和位置信息,原型如下:

 

2GRADIENT_RECT结构指定了函数GradientFill中参数pVertex数组中的两个点的索引,这两个点分别是一个矩形的左上角和右下角点,结构原型如下:

3GRADIENT_TRIANGLE结构指定了函数GradientFill函数中pVertex数组中的三个点的索引,这三个点组成一个三角形,结构原型如下:

实例代码如下:

原创粉丝点击