CreateDIBSection

CreateDIBSection

VB声明

Declare Function CreateDIBSection Lib "gdi32" Alias "CreateDIBSection" (ByVal hDC As Long, pBitmapInfo As BITMAPINFO, ByVal un As Long, ByVal lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long

说明

创建一个DIBSection。这是一个GDI对象,可象一幅与设备有关位图那样使用。但是,它在内部作为一幅与设备无关位图保存

返回值

Long,执行成功返回DIBSection位图的句柄,零表示失败。会设置GetLastError

参数表

参数

类型及说明

hDC

Long,一个设备场景的句柄。如dw设为DIB_PAL_COLORS,那么DIB颜色表就会用来自逻辑调色板的颜色进行初始化

pBitmapInfo

BITMAPINFO,这个结构初始化成欲创建的那幅位图的配置数据

un

Long,下述常数之一:

DIB_PAL_COLORS

BITMAPINFO包含了一个16位调色板索引的数组

DIB_RGB_COLORS

BITMAPINFO包含了一个颜色表,其中保存有32位颜色(RGBQUAD)

lplpVoid

Long,用于载入DIBSection数据区的内存地址

handle

Long,指向一个文件映射对象的可选句柄,位图将在其中创建。如设为零,Windows会自动分配内存

dw

Long,如指定了句柄,就用这个参数指定位图数据在文件映射对象中的偏移量

注解

一旦不再需要,记住用DeleteObject函数删除DIBSection位图

如Windows分配了一个内存缓冲区,那么对象删除以后,缓冲区也会自动删除。如指定了一个文件映射对象,则不会自动将其清除

在直接访问DIB内存之前,首先必须保证Windows已完成了绘图(记住,Windows可能对绘图操作进行了排列处理)。通过调用gdiFlush函数,可确保完成所有未决的绘图操作

Top