有这样的代码:Option ExplicitPrivate Declare Function GetCursorPos Lib "User32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowRect Lib "User32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function DrawAnimatedRects Lib "User32" (ByVal hWnd As Long, ByVal idAni As Long, lprcFrom As RECT, lprcTo As RECT) As LongPrivate Const IDANI_OPEN = &H1
Private Const IDANI_CLOSE = &H2
Private Const IDANI_CAPTION = &H3Public Enum ZoomDirection
ZoomFormOpen = 0
ZoomFormClosed = 1
End EnumPublic Enum ZoomFrom
TopLeft = 0
TopCenter = 1
TopRight = 2
MidLeft = 3
MidCenter = 4
MidRight = 5
BtmLeft = 6
BtmCenter = 7
BtmRight = 8
FromMousePointer = 9
FromXY = 10
End EnumPrivate Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End TypePrivate Type POINTAPI
Y As Long
X As Long
End TypePublic Sub AnimForm(f As Form, ScreenPosition As ZoomFrom, Direction As ZoomDirection, Optional posX As Integer = 0, Optional posY As Integer = 0)
Dim xFrom As RECT
Dim xTo As RECT
Dim ptApi As POINTAPI
Dim scrWd As Integer, scrHt As Integer
If ScreenPosition = FromMousePointer Then
GetCursorPos ptApi
xFrom.Top = ptApi.X
xFrom.Left = ptApi.Y
xFrom.Right = ptApi.X
xFrom.Bottom = ptApi.Y
ElseIf ScreenPosition = FromXY Then
xFrom.Top = posX
xFrom.Left = posY
xFrom.Right = posX
xFrom.Bottom = posY
End If
scrWd = Screen.Width / 15
scrHt = Screen.Height / 15
Select Case ScreenPosition
Case 0 'TopLeft = 0
xFrom.Left = 0
xFrom.Top = 0
Case 1 'TopCenter = 1
xFrom.Left = scrWd / 2
xFrom.Top = 0
Case 2 'TopRight = 2
xFrom.Left = scrWd - 1
xFrom.Top = 0
Case 3 'MidLeft = 3
xFrom.Left = 0
xFrom.Top = scrHt / 2
Case 4 'MidCenter = 4
xFrom.Left = scrWd / 2
xFrom.Top = scrHt / 2
Case 5 'MidRight = 5
xFrom.Left = scrWd - 1
xFrom.Top = scrHt / 2
Case 6 'BtmLeft = 6
xFrom.Left = 0
xFrom.Top = scrHt - 1
Case 7 'BtmCenter = 7
xFrom.Left = scrWd / 2
xFrom.Top = scrHt - 1
Case 8 'BtmRight = 8
xFrom.Left = scrWd - 1
xFrom.Top = scrHt - 1
End Select
xFrom.Bottom = xFrom.Top + 1
xFrom.Right = xFrom.Left + 1
GetWindowRect f.hWnd, xTo
If Direction = ZoomFormOpen Then
DrawAnimatedRects f.hWnd, IDANI_OPEN Or IDANI_CAPTION, xFrom, xTo
DoEvents
Else
DrawAnimatedRects f.hWnd, IDANI_CLOSE Or IDANI_CAPTION, xTo, xFrom
DoEvents
End If
End SubPrivate Sub Form_Unload(Cancel As Integer) AnimForm Me, BtmRight, ZoomFormClosedEnd Sub
上面的代码是窗口打开和关闭时的效果,我需要的是象拨号成功时的效果3x
Private Declare Function GetWindowRect Lib "User32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function DrawAnimatedRects Lib "User32" (ByVal hWnd As Long, ByVal idAni As Long, lprcFrom As RECT, lprcTo As RECT) As LongPrivate Const IDANI_OPEN = &H1
Private Const IDANI_CLOSE = &H2
Private Const IDANI_CAPTION = &H3Public Enum ZoomDirection
ZoomFormOpen = 0
ZoomFormClosed = 1
End EnumPublic Enum ZoomFrom
TopLeft = 0
TopCenter = 1
TopRight = 2
MidLeft = 3
MidCenter = 4
MidRight = 5
BtmLeft = 6
BtmCenter = 7
BtmRight = 8
FromMousePointer = 9
FromXY = 10
End EnumPrivate Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End TypePrivate Type POINTAPI
Y As Long
X As Long
End TypePublic Sub AnimForm(f As Form, ScreenPosition As ZoomFrom, Direction As ZoomDirection, Optional posX As Integer = 0, Optional posY As Integer = 0)
Dim xFrom As RECT
Dim xTo As RECT
Dim ptApi As POINTAPI
Dim scrWd As Integer, scrHt As Integer
If ScreenPosition = FromMousePointer Then
GetCursorPos ptApi
xFrom.Top = ptApi.X
xFrom.Left = ptApi.Y
xFrom.Right = ptApi.X
xFrom.Bottom = ptApi.Y
ElseIf ScreenPosition = FromXY Then
xFrom.Top = posX
xFrom.Left = posY
xFrom.Right = posX
xFrom.Bottom = posY
End If
scrWd = Screen.Width / 15
scrHt = Screen.Height / 15
Select Case ScreenPosition
Case 0 'TopLeft = 0
xFrom.Left = 0
xFrom.Top = 0
Case 1 'TopCenter = 1
xFrom.Left = scrWd / 2
xFrom.Top = 0
Case 2 'TopRight = 2
xFrom.Left = scrWd - 1
xFrom.Top = 0
Case 3 'MidLeft = 3
xFrom.Left = 0
xFrom.Top = scrHt / 2
Case 4 'MidCenter = 4
xFrom.Left = scrWd / 2
xFrom.Top = scrHt / 2
Case 5 'MidRight = 5
xFrom.Left = scrWd - 1
xFrom.Top = scrHt / 2
Case 6 'BtmLeft = 6
xFrom.Left = 0
xFrom.Top = scrHt - 1
Case 7 'BtmCenter = 7
xFrom.Left = scrWd / 2
xFrom.Top = scrHt - 1
Case 8 'BtmRight = 8
xFrom.Left = scrWd - 1
xFrom.Top = scrHt - 1
End Select
xFrom.Bottom = xFrom.Top + 1
xFrom.Right = xFrom.Left + 1
GetWindowRect f.hWnd, xTo
If Direction = ZoomFormOpen Then
DrawAnimatedRects f.hWnd, IDANI_OPEN Or IDANI_CAPTION, xFrom, xTo
DoEvents
Else
DrawAnimatedRects f.hWnd, IDANI_CLOSE Or IDANI_CAPTION, xTo, xFrom
DoEvents
End If
End SubPrivate Sub Form_Unload(Cancel As Integer) AnimForm Me, BtmRight, ZoomFormClosedEnd Sub
上面的代码是窗口打开和关闭时的效果,我需要的是象拨号成功时的效果3x
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货