VBasicFacil
Principal - Enlaces - Código - Controles - API
Declaración
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Plataformas
Descripción
Envía un mensaje a una ventana para ser procesada por la función de ventanas de Windows. Esta función no espera por la respuesta del mensaje, deja el mensaje en la cola de mensajes; a diferencia de la función SendMessage que envía el mensaje y espera por el resultado.
Parámetros
hWnd Manejador de la ventana a la que se le envia el mensaje. Si el manejador es HWND_BROADCAST, el mensaje se envia todas las ventanas de alto nivel.
Msg Identificador del mensaje enviado.
wParam Datos adicionales del mensaje. Depende del mensaje.
lParam Datos adicionales del mensaje. Depende del mensaje.
Constantes
Const HWND_BROADCAST = &HFFFF
Valor de retorno
Devuelve un cero si se produce un error al enviar el mensaje y distinto de cero si no se produce error.
Ejemplo
| Vamos a crear un formulario y manejarnos en el con las flechas del teclado en lugar del tabulador |
|
Formulario (Contiene tres TextBox) Option Explicit
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
Dim Tecla(0 To 255) As Byte
Select Case KeyCode
Case vbKeyRight, vbKeyDown: ' Flecha derecha y flecha abajo
' Simulamos la pulsación del la tecla TAB
PostMessage Text1(Index).hwnd, WM_KEYDOWN, VK_TAB, 0
Case vbKeyLeft, vbKeyUp:
GetKeyboardState Tecla(0)
' Simulación de la pulsación de la tecla SHIFT
Tecla(VK_SHIFT) = True
SetKeyboardState Tecla(0)
' Simulamos la pulsación de la tecla TAB
PostMessage Text1(Index).hwnd, WM_KEYDOWN, VK_TAB, 0
DoEvents
' Liberación de la tecla SHIFT
Tecla(VK_SHIFT) = False
SetKeyboardState Tecla(0)
End Select
' Vaciamos el buffer del teclado
KeyCode = 0
End Sub
|
|
Modulo (Implementado solo por claridad, podría ir en el formulario)
Option Explicit
Public Declare Function PostMessage _
Lib "user32" _
Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Public Declare Function SetKeyboardState _
Lib "user32" _
(lppbKeyState As Byte) As Long
Public Declare Function GetKeyboardState _
Lib "user32" _
(pbKeyState As Byte) As Long
Public Const WM_KEYDOWN = &H100
Public Const VK_TAB = &H9
Public Const VK_SHIFT = &H10
|
| Descargar Codigo : SetKeyboardState.zip |
Aplicaciones: Tiene tantas aplicaciones como identificadores de mensajes, de todas formas citaré aqui una:
Ver también:
Categoría: Mensajes
Ultima actualización : 7 de diciembre de 2001 Copyright © 2001 Silared, s.l. correo-e : vbasicfacil@silared.com Site : www.vbasicfacil.com