Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2008, 11:15
Avatar de Laforge
Laforge
 
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Pregunta Teclado en pantalla VB6

Hola a todos,

Mi problema es el siguiente:

Desearía crear un teclado en pantalla (como el que se puede ejecutar desde Windows) pero, lógicamente, customizado según mis necesidades (botones más grandes y otras funciones).

Tengo solucionadas las pulsaciones de teclado y la activación del formulario receptor de las pulsaciones pero el problema es que, al hacer 'click' sobre uno de los botones del teclado, el formulario del teclado captura el foco, el control del formulario receptor ejecuta los eventos de LOSTFOCUS y al devolverlo al formulario del programa receptor (antes de lanzar el keybd_event con la pulsación de teclado) éste ejecuta los eventos de GOTFOCUS del control que recibe el foco que, además, es el control con el tabindex 0 del formulario (que no tiene porqué ser el control al que yo quería enviar la pulsación).

Observando el funcionamiento del teclado en pantalla de windows, me he fijado en que éste NO SE ACTIVA, o sea, el formulario receptor NUNCA pierde el foco cuando hago click sobre una tecla. Husmeando por ahí he encontrado ciertas pistas (.NET) :

(agregar esto al formulario)

Cita:
Protected Overloads Overrides ReadOnly Property CreateParams() As CreateParams
Get
Const WS_EX_NOACTIVATE As Integer = 134217728
Dim param As CreateParams = MyBase.CreateParams
param.ExStyle = param.ExStyle Or WS_EX_NOACTIVATE
Return param
End Get
End Property
...a mi me parece que esto del ExStyle con el valor de WS_EX_NOACTIVE debe ser lo que evita que el formulario recoja el foco cuando lo 'clickeamos'.

Alguién sabe como conseguir esto mismo en VB6 ???????

Saludos y gracias
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL