Problemón aburdo en VB6. SOCORRO

Todos sabemos que cuando realizamos doble click en un botón (command button), se genera un evento click y se guarda el segundo click para otra acción. En caso de un formulario modal en el que coindidan en posición algunos botones del formulario primario y del formulario secundario, si hacemos doble click, se realiza el evento click del formulario modal y el evento click del formulario "padre". Si quiero eliminar el segundo click, ¿Cómo puedo hacerlo?. Muchas gracias de antemano

1 respuesta

Respuesta
1
No es tan absurdo lo que planteas, nos paso a muchos, pero te doy una solución, es con API:
Declara esto en un modulo
Public Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
ahora en el evento Unload de los formularios modal pone:
BlockInput True
Sleep 200
BlockInput False
Esto hace que se bloque el mouse, por lo tanto se pierde el segundo click, por un tiempo determinado por la función sleep, ese tiempo esta en milisegundos, creo con 100 o 200 milisegundo ya es suficiente, pruébalo.
Tené mucho cuidado con la función "BlockInput True" esta te bloque completamente el mouse, no solo los clicks, así que si no pones "BlockInput False" luego te quedas sin mouse y en ese caso tienes que reiniciar la maquina, recordá que estas trabajando con las API, por las dudas pone un timer que cada 1 o 2 segundos te ponga "BlockInput False", por las dudas que te falle alguna rutina, así no se te cuelga el mouse.
Cualquier duda estoy a tu disposición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas