[VB].. BitBlt 的具体用法!!详细!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[VB].. BitBlt 的具体用法!!详细!!!相关的知识,希望对你有一定的参考价值。

参考技术A BitBlt 目标hDC, 目标X, 目标Y, 图像高, 图像宽, 源hDC, 源X, 源Y, 光栅运算常数

【函数】
BitBlt

【操作系统】
Win9X:Yes
WinNT:Yes

【声明】
BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC 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 dwRop As Long) As Long

【说明】

将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容

【返回值】

Long,非零表示成功,零表示失败。会设置GetLastError

【其它】

在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败
如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程

【参数表】
hDestDC -------- Long,目标设备场景

x,y ------------ Long,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示

nWidth,nHeight - Long,欲传输图象的宽度和高度

hSrcDC --------- Long,源设备场景。如光栅运算未指定源,则应设为0

xSrc,ySrc ------ Long,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示

dwRop ---------- Long,传输过程要执行的光栅运算本回答被提问者采纳
参考技术B bitblt
picture2.hdc,
0,
0,
picture1.scalewidth,
picture1.scaleheight,
picture1.hdc,
0,
0,
vbsrccopy

VB,bitblt函数

我想让picture1的图片复制到picture2里,并且picture2里有一张图片,但是我复制过去后,picture2里的图片会像是主动给picture1的图片让出了位置一样。怎么样才能让picture1的图片在不影响picture2的情况复制在picture2上?

参考技术A BitBlt Picture2.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, vbSrcCopy追问

我就是这样弄的,但是不成,我把宽度和高度改成280之后,才得到了想要的,相当于图片叠加的样子。Picture1.ScaleWidth, Picture1.ScaleHeight这样设置出来,他截图却是picture2的高度和宽度,我也看过picture1和picture2是否弄反了,但是不是。十分十分郁闷···

追答

不是主动给picture1的图片让出了位置,而是把picture1+picture2一同复制贴进picture2了,因为单位不对,呵呵,这样试试:
BitBlt Picture2.hDC, 0, 0, Picture1.ScaleWidth / Screen.TwipsPerPixelX, Picture1.ScaleHeight / Screen.TwipsPerPixelY, Picture1.hDC, 0, 0, vbSrcCopy

本回答被提问者采纳

以上是关于[VB].. BitBlt 的具体用法!!详细!!!的主要内容,如果未能解决你的问题,请参考以下文章

请教一下mfc中bitblt各个参数的具体含义

VB控件commondialog 的具体作用与用法

fastreport破解版VB用法

vb如何在图标上叠加上快捷方式的箭头图标

bitblt函数怎么用啊?

关于BitBlt函数