Utilicé VB para crear un pequeño programa de chat de red de área local en casa. Cuando llega un mensaje nuevo, ¿cómo puedo mostrar la barra de título?
VB se da cuenta de que la barra de título de la ventana parpadea
Hacer parpadear la barra de título de una ventana significa cambiar la apariencia de su barra de título, por ejemplo, cambia de activa a inactiva, o de Inactividad pasa a ser activo y así sucesivamente. Siempre que pueda manejar la ventana en Visual Basic, puede usar las funciones de la interfaz de programación de aplicaciones (API) de Windows para hacer que la barra de título de la ventana parpadee. La función FlashWindows se puede utilizar para hacer que una ventana específica parpadee una vez. Para utilizar esta función, incluya la siguiente declaración en la sección de declaración general de su formulario:
#If Win32 Then
Declare la función FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
#Else
Declarar función FlashWindow Lib "Usuario" (ByVal hwnd como entero, ByVal bInvert como entero) como entero
#End If
Esta función requiere 2 parámetros. El primer parámetro es el identificador de la ventana cuya barra de título se va a mostrar. El segundo parámetro se utiliza para especificar el estado de parpadeo de la ventana. a su estado original. Si el parámetro bInvert es distinto de cero, indica que la barra de título de la ventana está parpadeando. Si este parámetro es 0, indica que la barra de título de la ventana se restaura a su estado original. El valor devuelto por esta función se utiliza para especificar el estado de la ventana antes de llamar a la función. Si el valor de retorno es distinto de cero, indica que la ventana estaba activa antes de llamar a la función. indica que la ventana estaba activa antes de que se llamara la función. Cuando se utiliza esta función FlashWindow, un mejor método es configurar la frecuencia de parpadeo de la barra de título para que sea la misma que la del cursor (es decir, el cursor parpadeante. La frecuencia de parpadeo del cursor se puede obtener llamando a la función GetCaretBlinkTime). Para utilizar esta función, incluya la siguiente declaración en la sección de declaración general de su formulario:
#If Win32 Then
Declarar función GetCaretBlinkTime Lib "user32" () As Long p>
#Else
Declarar función GetCaretBlinkTime Lib "Usuario" () como entero
#End If
Esta función devuelve el tiempo representado por el valor de milisegundos.
Programa de muestra
1. Inicie un nuevo proyecto en Visual Basic y utilice el método predeterminado para crear Form1.
2. Agregue un control de temporizador en Form1 y use el método predeterminado para crear Timer1.
3. Agregue el siguiente código al evento Form_GotFocus de Form1:
Private Sub Form_GotFocus()
Timer1.Enabled = False
End Sub
4. Agregue el siguiente código al evento Form_Load de Form1:
Private Sub Form_Load()
Timer1.Interval = GetCaretBlinkTime( )
Form2.Show
End Sub
5 Agregue el siguiente código al evento Timer1_Timer de Timer1:
Private Sub Timer1_Timer().
SUCcess = FlashWindow(Form1.hwnd, 1)
End Sub
6. Agregue un segundo formulario, utilizando el método predeterminado Crear Formulario2.
7. Agregue el siguiente código al evento de clic de Form2:
Private Sub Form_Click()
Form1.Timer1.Enabled = True
p>
End Sub
8. Agregue un nuevo módulo y use el método predeterminado para crear Module1.Bas. Agregue el siguiente código a la sección de declaración general del módulo:
#If Win32 Then
Declare la función FlashWindow Lib "user32" ( _
ByVal hwnd As Long, _
ByVal bInvert As Long) As Long
Declarar función GetCaretBlinkTime Lib "user32" () As Long
Dim Success As Long
#Else
Declarar función FlashWindow Lib "Usuario" ( _
ByVal hwnd como entero, _
ByVal bInvert como entero) como entero < / p>
Declarar la función GetCaretBlinkTime Lib "Usuario" () como entero
Dim Success como entero
#End If
Haciendo clic en la tecla F5 para ejecute el programa de muestra, haga clic en el formulario Form2. En este momento, el formulario Form1 estará en modo inactivo y su barra de título parpadeará continuamente. Haga clic en Form1 para activarlo y la barra de título del formulario ya no parpadeará