Programación General > Visual C++
Onkeydown
(1/1)
miau:
buenas a todos, perdonad si la pregunta está repetida, pero lo he buscado y no encuentro nada...
Mi problema es el siguiente, tengo una aplicación MFC, con varios botones, cajas de texto, etc... En un momento dado intento que al pulsar una tecla se ejecute cierta función, pero no hay manera de que entre en la función onkeydown...
por ejemplo, con las flechas lo único que hace es moverse por los diferentes controles, eso sí, si los desactivo todos (son demasiados y es un engorro), si que captura las teclas
En Delphi he hecho lo mismo y no hay problema utilizando la propiedad KeyPreview, en la ayuda de visual tb la encuentro, pero no tengo ni idea de como utilizarla
espero me podais ayudar
muchas gracias
diego.martinez:
de MFC no es que tenga mucha idea pero si sabes algo de como va el bucle de mensajes, puedes capturar el evento WM_SYSKEY o WM_KEYDOWN:
ivancp:
Hola,
Puedes escribir la funcion virtual PreTranslateMessage:
--- Código: Text ---BOOL CTuDialogo::PreTranslateMessage(MSG* pMsg){ if(pMsg->message == WM_KEYDOWN && pMsg->wParam = VK_LEFT) { MessageBox("Cursor Izquierdo"); return TRUE; } return CTuDialogo::PreTranslateMessage(pMsg);}
VK_LEFT, es la tecla de cursor izquerdo.
VK_RIGHT derecho, VK_UP arriba, VK_DOWN abajo.
william20000:
Muchas gracias ivancp, si supieras de la que me salvaste, funcionó perfecto
Navegación
Ir a la versión completa