Red de conocimientos turísticos - Conocimientos sobre calendario chino - 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?

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?

Primero, debes tener un FORM1, luego agrega un módulo y escribe algo como esto:

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

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

pe="text/javascript" src="../css/tongji.js">