各位兄弟,我要在背景图上面另外透明显示另外一张小图?该如何是好?
1.背景图是一张大图,用picturebox装载,
2.小图是用pictureclip装载,取其中的clip(1);
3.然后在背景图上显示,我弄了好久,就是没有显示出来,大家帮帮忙Private Sub Form_paint()
Dim Pic2 As Picture
Dim hOldBmp1 As Long, hOldBmp2 As Long
Dim hdcSrc As Long
Dim BITMAP As Long
Dim hdcDes As Long Picture1.ScaleMode = vbPixels
Set Pic2 = PictureClip2.GraphicCell(1)
hdcDes = GetDC(Picture1.hwnd)
hdcSrc = CreateCompatibleDC(hdcDes)
BITMAP = SelectObject(hdcSrc, Pic1)
Call TransparentBlt(hdcDes, 100, 100, 50, 50, hdcSrc, 0, 0, 50, 50, RGB(0, 0, &H0))
hOldBmp2 = SelectObject(hdcSrc, BITMAP)
End Sub
1.背景图是一张大图,用picturebox装载,
2.小图是用pictureclip装载,取其中的clip(1);
3.然后在背景图上显示,我弄了好久,就是没有显示出来,大家帮帮忙Private Sub Form_paint()
Dim Pic2 As Picture
Dim hOldBmp1 As Long, hOldBmp2 As Long
Dim hdcSrc As Long
Dim BITMAP As Long
Dim hdcDes As Long Picture1.ScaleMode = vbPixels
Set Pic2 = PictureClip2.GraphicCell(1)
hdcDes = GetDC(Picture1.hwnd)
hdcSrc = CreateCompatibleDC(hdcDes)
BITMAP = SelectObject(hdcSrc, Pic1)
Call TransparentBlt(hdcDes, 100, 100, 50, 50, hdcSrc, 0, 0, 50, 50, RGB(0, 0, &H0))
hOldBmp2 = SelectObject(hdcSrc, BITMAP)
End Sub
解决方案 »
- 在VB6.0中怎么实现escape和unescape,需要引用哪个API?
- 为何当组合框 执行 cbo1.listindex=1 时,将会执行到组合框自身的单击事件?[比如组合框名为cbo1]
- 喜得千金,左手再散300,出院后与以前一贴一起揭
- 急问一个二次开发的问题
- vb脚本向本机和局域网中的另一电脑分别记录数据,存在问题
- 求大神指导08音乐播放器
- 如何从一个客户端页面上的的ActiveX控件调用服务器端的类和方法。分不够可以再加
- ★★★★还是datagrid控件显示数据的问题,能用的招都用了,没辄了请高人帮忙....
- 为什么我在EXE文件中看到的真彩图标抓出来却变成了16色的?
- 请教VB大虾,VB5中能否使用多线程?请给个实例。
- 菜鸟求教:利用vb修改注册表
- 请asftrhgjhkjlkttttttt老师帮忙
tBlendOp As Byte
tBlendOptions As Byte
tBlendAmount As Byte
tAlphaType As Byte
End TypePrivate Declare Function AlphaBlend Lib "msimg32" (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 widthSrc As Long, _
ByVal heightSrc As Long, ByVal blendFunct As Long) As BooleanPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)Public Sub ShowTransparency(cSrc As PictureBox, cDest As PictureBox, _
ByVal nLevel As Byte)
Dim LrProps As rBlendProps
Dim LnBlendPtr As Long
Dim w As Long, h As Long
On Error GoTo errr
cDest.Cls
LrProps.tBlendAmount = nLevel
CopyMemory LnBlendPtr, LrProps, 4
With cSrc
w = .ScaleWidth / Screen.TwipsPerPixelX
h = .ScaleHeight / Screen.TwipsPerPixelY
AlphaBlend cDest.hDC, 0, 0, w, h, .hDC, 0, 0, w, h, LnBlendPtr
End With
cDest.Refresh
errr:
End Sub