自我学习之一:淡入淡出(抄)

类别:VC语言 点击:0 评论:0 推荐:

Option Explicit

Public Sub IntervalX(ByVal intI As Integer)
If intI > 0 Then Sleep (intI)  '制造千分之intI秒的时间间隔
End Sub

Public Sub ShowTransparency(SrcDC As Long, _
                    ByVal SrcX As Long, _
                    ByVal SrcY As Long, _
                    ByVal SrcHeight As Long, _
                    ByVal SrcWidth As Long, _
                    DestDC As Long, _
                    ByVal DestX, _
                    ByVal DestY, _
                    ByVal DestHeight As Long, _
                    ByVal DestWidth As Long, _
                    ByVal nLevel As Byte)
   
    Dim LrProps As rBlendProps
    Dim LnBlendPtr As Long

    LrProps.tBlendAmount = nLevel
    CopyMemory LnBlendPtr, LrProps, 4
    AlphaBlend DestDC, DestX, DestY, DestWidth, DestHeight, _
        SrcDC, SrcX, SrcY, SrcWidth, SrcHeight, LnBlendPtr
End Sub

Public Sub CopyPictureX(ByVal dcSour As Long, _
                        ByVal SourX As Long, _
                        ByVal SourY As Long, _
                        ByVal dcDest As Long, _
                        ByVal DestX As Long, _
                        ByVal DestY As Long, _
                        ByVal DestWidth As Long, _
                        ByVal DestHeight As Long)
'dcSour——>dcDest

    BitBlt dcDest, DestX, DestY, DestWidth, DestHeight, dcSour, SourX, SourY, SRCCOPY

End Sub

Public Sub ScreenCls()

    '刷新桌面
    InvalidateRectAsAny 0, ByVal 0&, True

End Sub

Private Sub Form_Load()

    Dim i, l, t

    Picture2.Height = Picture1.Height
    Picture2.Width = Picture1.Width

    l = (Screen.Width / Screen.TwipsPerPixelX - Picture1.ScaleWidth) / 2
    t = (Screen.Height / Screen.TwipsPerPixelY - Picture1.ScaleHeight) / 2

    CopyPictureX GetDC(0), l, t, Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.Height

    For i = 0 To 150 Step 7
        IntervalX 150 - i
        DoEvents
        ShowTransparency Picture1.hdc, 0, 0, Picture1.ScaleHeight, _
        Picture1.ScaleWidth, GetDC(0), l, t, _
        Picture1.ScaleHeight, Picture1.ScaleWidth, i
    Next i

    IntervalX 1000
   
    For i = 0 To 150 Step 7
        IntervalX 150 - i
        DoEvents
        ShowTransparency Picture2.hdc, 0, 0, Picture2.ScaleHeight, _
        Picture2.ScaleWidth, GetDC(0), l, t, _
        Picture2.ScaleHeight, Picture2.ScaleWidth, i
    Next i

    ScreenCls

    Unload Me
   
End Sub

本文地址:http://com.8s8s.com/it/it2911.htm