Hola, ¿cómo lograr el efecto de animación de aparición y desaparición gradual y propagación lenta desde el centro hacia los alrededores al abrir y cerrar el formulario en vb?
Const GWL_WNDPROC = (-4)
Función de declaración privada GetWindowLong Lib "user32" Alias "GetWindowLongA " ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Función de declaración privada SetWindowLong Lib Alias "user32" " SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Const PROP_PREVPROC = " PrevProc"
Const PROP_FORM = "FormObject"
Función de declaración privada SetProp Lib "user32" Alias "SetPropA" ( _
ByVal hWnd Mientras, _
ByVal dwNewLong Mientras) Mientras
ByVal dwNewLong Mientras _
ByVal lpString Como cadena, _
ByVal hData As Long ) As Long
Función de declaración privada GetProp Lib "user32" Alias "GetPropA" ( _
ByVal hWnd As Long, _
ByVal lpString As String) As Long
Función de declaración privada RemoveProp Lib "user32" Alias "RemovePropA" ( _
ByVal hWnd As Long, _
ByVal lpString As String) As Long
Declaración privada Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
Destino como cualquiera, _
Src como cualquiera, _
ByVal DestL siempre)
Const WM_PRINTCLIENT = amp;H318
Tipo privado RECT
Izquierda Tan largo
Arriba Tan largo
Derecha Tan largo
Abajo Tan largo
Tipo final
Declaración privada Función Obtener
ClientRect Lib "user32" (_
ByVal hWnd As Long,_
lpRect As RECT) As Long
Función de declaración privada apiOleTranslateColor Lib "oleaut32" Alias " OleTranslateColor" ( _
ByVal lOleColor Mientras, _
ByVal lHPalette Mientras, _
lColorRef Mientras) Mientras
Enum AnimateWindowFlags
AW_HOR _POSITIVE = amp;H1
AW_HOR_NEGATIVE = amp;H2
AW_VER_POSITIVE = amp;H4
AW_VER_NEGATIVE = amplificador H8
AW_CENTER = amplificador.H10
AW_HIDE = amplificador;H10000
AW_ACTIVATE = amplificador;H20000
AW_SLIDE = amplificador; H40000
AW_BLEND = amp; H80000
Fin de enumeración
Función de declaración privada apiAnimateWindow Lib "user32" Alias "AnimateWindow" ( _
ByVal hWnd Mientras, _
ByVal dwTime Mientras, _
ByVal dwTime Mientras, _
ByVal dwFlags Mientras) Mientras p>
Función de declaración privada MulDiv Lib "kernel32" ( _
ByVal Mul As Long, _
ByVal Nom As Long, _
ByVal Den As Long) As Long
Función de declaración privada CreateSolidBrush Lib "gdi32" ( _
ByVal crColor As Long) As Long
Función de declaración privada BitBlt Lib "gdi32 " ( _
ByVal hDestDC As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth Mientras, _
ByVal nHeight Mientras, _
ByVal hSrcDC Mientras, _
ByVal xSrc Mientras, _
ByVal ySrc Mientras,_
ByVal dwRop Mientras) Mientras
<p>Función de declaración privada GetDC Lib "user32" ( _
ByVal hWnd As Long) As Long
Función de declaración privada CreateCompatibleDC Lib " gdi32" ( _
ByVal hDC As Long) As Long
Función de declaración privada ReleaseDC Lib "user32" (_
ByVal hWnd As Long,_
ByVal hDC As Long) As Long Largo
Función de declaración privada CreateCompatibleDC Lib "user32" ( _
ByVal hWnd As Long, _
ByVal hDC As Long) As Long
Función de declaración privada DeleteDC Lib "gdi32" ( _
ByVal hDC As Long) As Long
Función de declaración privada FillRect Lib " user32" ( _
ByVal hDC Mientras, _
lpRect Como RECT, _
ByVal hBrush Mientras) Mientras
Función de declaración privada DeleteObject Lib "gdi32" ( _
ByVal hObject As Long) As Long
Función de declaración privada SelectObject Lib " gdi32" ( _
ByVal hDC As Long, _
ByVal _
ByVal hWnd Mientras, _
ByVal Msg Mientras, _
ByVal wParam Mientras, _
ByVal lParam Mientras) Mientras
''Comentario:
''Comentario.
AnimateWindow
'''Comentarios:
'''Comentarios: un contenedor para la API de AnimateWindow
'''Comentarios:
Sub AnimateWindow( _
ByVal Formulario como formulario, _
ByVal dwTime As Long, _
ByVal dwFlags como AnimateWindowFlags)
' Comentario :Establecer propiedades
SetProp Form.hWnd, PROP_PREVPROC, GetWindowLong(Form.hWnd, GWL_WNDPROC)
SetProp Form.hWnd, PROP_FORM, ObjPtr(Form)
'Nota: ventana de subclase
SetWindowLong Form.hWnd, GWL_WNDPROC, AddressOf AnimateWinProc
'Nota: llamada a la API de AnimateWindow
apiAnimateWindow Form.hWnd, dwTime, dwFlags
'Comentario: Cancelar subclase de ventana
SetWindowLong Form.hWnd, GWL_WNDPROC, GetProp(Form.hWnd, PROP_PREVPROC)
'Comentario: Eliminar propiedades