+ -
当前位置:首页 → 问答吧 → 有没有办法让image 控件显示图片时,渐变显示?

有没有办法让image 控件显示图片时,渐变显示?

时间:2011-10-06

来源:互联网

有没有办法让image 控件显示图片时,渐变显示?
高手有代码吗?谢谢了
如果有代码,而且不太长的话,能不能帮小弟加上简单的注视,小弟学习起来能方便点,有劳了各位了!!!

作者: cjd0212   发布时间: 2011-10-06

用gdi++做下处理即可。

作者: dafu2003   发布时间: 2011-10-07

引用 1 楼 dafu2003 的回复:
用gdi++做下处理即可。

大哥,能给弄点代码吗?gdi真不会啊,麻烦了哦

作者: cjd0212   发布时间: 2011-10-07

VB code
Option Explicit

Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private 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 Boolean

Function ShowPicture(ByVal sPicA As String, ByVal sPicB As String, ByVal Transparent As Byte) As StdPicture
    Dim w As Long, h As Long
    Dim Pic1 As StdPicture, Pic2 As StdPicture
    Dim hMemDc1 As Long, hMemDc2 As Long
    Dim hOldBmp1 As Long, hOldBmp2 As Long
    
    Set Pic1 = LoadPicture(sPicA)
    hMemDc1 = CreateCompatibleDC(Me.hdc)
    hOldBmp1 = SelectObject(hMemDc1, Pic1.Handle)
    
    Set Pic2 = LoadPicture(sPicB)
    w = Me.ScaleX(Pic2.Width, vbHimetric, vbPixels)
    h = Me.ScaleY(Pic2.Height, vbHimetric, vbPixels)
    hMemDc2 = CreateCompatibleDC(Me.hdc)
    hOldBmp2 = SelectObject(hMemDc2, Pic2.Handle)
    
    AlphaBlend hMemDc1, 0, 0, w, h, hMemDc2, 0, 0, w, h, Transparent * &H10000
    
    DeleteObject SelectObject(hMemDc2, hOldBmp2)
    DeleteDC hMemDc2
    Set Pic2 = Nothing
    
    Call SelectObject(hMemDc1, hOldBmp1)
    DeleteDC hMemDc1
    Set ShowPicture = Pic1
    Set Pic1 = Nothing
End Function

Private Sub Command1_Click()
    Set Me.Picture = ShowPicture("e:\1.jpg", "e:\2.jpg", 100)
End Sub


窗体上加个按钮,然后改一下上面的图片路径,第三个参数是第一个参数中的图片的透明度,0是不透明,255是全透明.

第二个参数是背景图片.

作者: myjian   发布时间: 2011-10-08

热门下载

更多