发信人: winsy(鹰派)
整理人: winsy(2003-03-12 08:56:11), 站内信件
|
SetBitmapDimensionEx
VB声明
Declare Function SetBitmapDimensionEx Lib "gdi32" Alias "SetBitmapDimensionEx" (ByVal hbm As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long
说明
设置一幅位图的宽度。以一毫米的十分之一为单位。Windows不使用这种信息,但也许能通过GetBitmapDimensionEx函数获取
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hbm Long,一幅位图的句柄
nX,nY Long,位图的建议大小,以0.1mm为单位
lpSize SIZE,用于载入前一个位图大小的结构
SetDIBColorTable
VB声明
Declare Function SetDIBColorTable Lib "gdi32" Alias "SetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD) As Long
说明
设置选入设备场景的一个DIBSection的颜色表信息
返回值
Long,要设置的颜色表条目数量,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hDC Long,已选定一个DIBSection对象的一个设备场景
un1 Long,要在颜色表中设置的第一个条目的索引
un2 Long,欲设置的条目数量
pcRGBQuad RGBQUAD,一个RGBQUAD结构的头一个条目。这个结构包含了新的颜色表信息。至少需要设置成un2个条目的长度
注解
如DIBSection为每个像素使用的二进制位超过8位,则不会使用颜色表
SetDIBits
VB声明
Declare Function SetDIBits Lib "gdi32" Alias "SetDIBits" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
说明
将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
返回值
Long,执行成功则返回扫描线的数量,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,指向一个设备场景的句柄,那个设备场景定义了与设备有关位图(hBitmap)的配置
hBitmap Long,目标位图的一个句柄。这幅位图绝对不能选入一个设备场景
nStartScan Long,lpBits数组中第一条扫描线的编号。如lpBI之BITMAPINFOHEADER部分的biHeight字段是正数,那么这条扫描线就会从位图的底部开始计算;如果是负数,就从顶部开始计算
nNumScans Long,欲复制的扫描线数量
Any,指向一个缓冲区的指针。这个缓冲区包含了以DIB格式描述的位图数据;这种格式是由lpBI指定的
lpBI BITMAPINFO,对lpBits DIB的格式和颜色进行描述的一个结构
wUsage Long,下述常数之一
DIB_PAL_COLORS 颜色表是一个整数数组,其中包含了与目前选入hdc设备场景的调色板相关的索引
DIB_RGB_COLORS 颜色表包含了RG颜色
注解
用GetDeviceCaps判断设备是否支持这个函数
SetDIBitsToDevice
VB声明
Declare Function SetDIBitsToDevice Lib "gdi32" Alias "SetDIBitsToDevice" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BITMAPINFO, ByVal wUsage As Long) As Long
说明
将一幅与设备无关位图的全部或部分数据直接复制到一个设备。这个函数在设备中定义了一个目标矩形,以便接收位图数据。它也在DIB中定义了一个源矩形,以便从中提取数据
返回值
Long,执行成功则返回扫描线的数量,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,一个设备场景的句柄。该场景用于接收位图数据
x,y Long,用逻辑坐标表示的目标矩形的起点
dx,dy Long,用目标矩形的设备单位表示的宽度及高度
SrcX,SrcY Long,用设备坐标表示的源矩形在DIB中的起点
Scan Long,Bits数组中第一条扫描线的编号。如BitsInfo之BITMAPINFOHEADER部分的biHeight字段是正数,那么这条扫描线就会从位图的底部开始计算;如果是负数,就从顶部开始计算
NumScans Long,欲复制的扫描线数量
Bits Any,指向一个缓冲区的指针。这个缓冲区包含了以DIB格式描述的位图数据;这种格式是由BitsInfo指定的
BitsInfo BITMAPINFO,对Bits DIB的格式和颜色进行描述的一个结构
wUsage Long,下述常数之一
DIB_PAL_COLORS 颜色表是一个整数数组,其中包含了与目前选入hdc设备场景的调色板相关的索引
DIB_RGB_COLORS 颜色表包含了RG颜色
注解
用GetDeviceCaps判断设备是否支持这个函数
SetStretchBltMode
VB声明
Declare Function SetStretchBltMode Lib "gdi32" Alias "SetStretchBltMode" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
说明
指定StretchBlt 和 StretchDIBits函数的伸缩模式。这种伸缩模式定义了Windows如何对伸缩过程中剔除的扫描线进行控制。对于VB窗体和控件,倘若在API绘图过程中使用这个函数,建议恢复原来的StretchBlt模式
返回值
Long,上一次伸缩模式的值,零表示失败
参数表
参数 类型及说明
hdc Long,设备场景的句柄
nStretchMode Long,新伸缩模式建立在下述任何一个常数的基础上,它们均在API32.TXT文件中得到了定义:
STRETCH_ANDSCANS 默认设置。剔除的线段与剩下的线段进行AND运算。这个模式通常应用于采用了白色背景的单色位图
STRETCH_DELETESCANS 剔除的线段被简单的清除。这个模式通常用于彩色位图
STRETCH_ORSCANS 剔除的线段与剩下的线段进行OR运算。这个模式通常应用于采用了白色背景的单色位图
STRETCH_HALFTONE 目标位图上的像素块被设为源位图上大致近似的块。这个模式要明显慢于其他模式
注解
如果要对伸缩模式有一个更深刻的印象,可想象一下对白色图象中的一条白色细线进行压缩。压缩过程中,像素会从图象中删去。为避免线段消失,在删除它们之前,有必要先对线段中的像素与邻近像素进行AND运算。为达到这个目的,应考虑选用STRETCH_ANDSCANS伸缩模式
StretchBlt
VB声明
Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
说明
将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容。这个函数会在设备场景中定义一个目标矩形,并在位图中定义一个源图象。源矩形会根据需要进行伸缩,以便与目标矩形的大小相符
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,目标设备场景
x,y Long,目标矩形左上角的x,y坐标,以逻辑坐标表示
nWidth,nHeight Long,目标矩形的宽度和高度,以逻辑坐标表示
hSrcDC Long,源设备场景。如光栅运算未指定一个源,则这个参数应为零
xSrc,ySrc Long,用源DC的逻辑坐标表示的源矩形左上角位置
nSrcWidth,nSrcHeight Long,分别指定用逻辑单位(以源DC为基础)传输的一幅图象的宽度和高度。如其中有一个参数的符号(指正负号)与对应的目标参数不符,位图就会在对应的轴上作镜像转换处理
dwRop Long,传输过程中进行的光栅运算。如刷子属于光栅运算的一部分,就使用选入目标DC的刷子
注解
可用GetDeviceCaps函数判断特定的设备场景是否支持此函数
不可选择对源位图进行剪切或旋转处理,源位图也不能是一个图元文件设备场景
StretchDIBits
VB声明
Declare Function StretchDIBits Lib "gdi32" Alias "StretchDIBits" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long
说明
将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景。这个函数在设备场景中定义了一个目标矩形,用于接收位图数据。它也在DIB中定义了一个源矩形,以便从中提取数据。根据设备场景的StretchBlt模式(由SetStretchBltMode函数决定),源矩形会根据需要调整,以便符合目标矩形的要求
返回值
Long,如函数执行成功,返回欲复制的扫描线的数量;如返回常数GDI_ERROR,表示出错
参数表
参数 类型及说明
hdc Long,一个设备场景的句柄。该场景用于接收位图数据
x,y Long,用逻辑坐标表示的目标矩形的起点
dx,dy Long,目标矩形的宽度及高度,以逻辑坐标表示
SrcX,SrcY Long,用设备坐标表示的源矩形在DIB中的起点
wSrcWidth,wSrcHeight Long,源矩形的宽度与高度,用设备坐标表示。如其中有一个参数的符号(指正负号)与对应的目标参数不符,位图就会在对应的轴上作镜像转换
lpBits Any,指向一个缓冲区的指针。这个缓冲区包含了以DIB格式描述的位图数据;这种格式是由lpBitsInfo指定的
lpBitsInfo BITMAPINFO,对lpBits DIB的格式和颜色进行描述的一个结构
wUsage Long,下述常数之一
DIB_PAL_COLORS 颜色表是一个整数数组,其中包含了与目前选入hdc设备场景的调色板相关的索引
DIB_RGB_COLORS 颜色表包含了RG颜色
dwRop Long,欲进行的光栅运算
|
|