VB 求图片透明的处理!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:30:58
注意是图片透明,就是说透明度,50%的透明度,这样即使和别的图片重叠也能同时看到两张图片!
不是图片矩形透明!那种不需要
PICTURE和IMAGE控件都可以
只要能达到透明度就OK
比较好的解决了绝对送上200分!!!
PS:AlphaBlend这个函数好象不太好,因为源图片隐藏了的话就无法达到透明效果
是这样的
比如有2个PICTURE
都装载了图片
我需要将2P 50%透明化处理
然后画到1P上的某个位置上去
这样就形成了2个图片混合在一起并且都能看到
就像这图一样↓
https://gss0.baidu.com/7LsWdDW5_xN3otqbppnN2DJv/cbm666/pic/item/a38d94eec8ea02282cf534ab.jpg
半透明的效果
但是我的2张图片都不是一样的大,并且2P需要隐藏到看不到的的地方

AlphaBlend谢谢你的回答,你能给份事例代码吗?越简单越好

不知道你说的究竟是怎样的透明

AlphaBlend 的功能就是两幅图片的alpha混合
能不能说的再具体点

2张图片不一样大,并没有关系 AlphaBlend 可以分别指定源图象和目标图象大小
只要将 2个PICTURE的autoredraw属性设为true ,即使图片框不可见

50%透明化也可以实现的

Private Const SRCCOPY = &HCC0020
Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (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

Private Sub Form_Load()
Picture1.AutoSize = True
Picture1.AutoRedraw = True
Picture1.Visible = False
Picture2.AutoSize = True
Picture2.AutoRedraw = True
Pic