Tengo el siguiente problema en una aplicación WinForms. Estoy intentando implementar teclas rápidas y necesito procesar mensajes clave siempre que el control esté activo, sin importar si el foco está en un cuadro de texto dentro de ese control, etc.ProcessCmdKey - ¿Espera a KeyUp?
Rectificación de ProcessCmdKey funciona muy bien para esto y hace exactamente lo que Quiero con una excepción:
Si un usuario presiona una tecla y la mantiene presionada, ProcessCmdKey sigue activando eventos WM_KEYDOWN.
Sin embargo, lo que quiero lograr es que el usuario tenga que volver a soltar el botón antes de que se active otra tecla (por lo tanto, si alguien se sienta en el teclado no provocará eventos continuos de tecla de acceso directo).
Sin embargo, no puedo encontrar dónde atrapar eventos WM_KEYUP, por lo que puedo establecer un indicador si debe procesar mensajes ProcessCmdKey nuevamente?
¿Alguien puede ayudar aquí?
Gracias,
Tom
Hm, que no parece funcionar para mí, no parece PreProcessMessage para ser disparado. – TJF
Arf, solo se ejecuta si el formulario tiene el foco. Necesitamos el plan B, déjalo pensar. –
@Tom: está bien, IMessageFilter puede hacerlo. Actualicé mi publicación. –