Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

capturar tecla.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: capturar tecla. Responder citando

Buenas tengo un Form con un edit y un listbox, lo que pretendo es capturar la tecla Tab en los eventos KeyPress, o Keydown.... de los dos componentes. Buscando en este foro (y en otros) he encontrado un tema relacionado en el que se se da como solucion capturar el mensaje.
Código:

private: // User declarations

  void __fastcall CmDialogKey(TCMDialogKey& msg)
  {
      if ( msg.CharCode == VK_TAB )
          ShowMessage("se pulso tab");
      // Si queremos que el mensaje siga su curso normal
      //   añadimos la linea siguiente, sino la quitamos
      TForm::Dispatch( &msg );
  }

  BEGIN_MESSAGE_MAP
      MESSAGE_HANDLER(CM_DIALOGKEY, TCMDialogKey, CmDialogKey)
  END_MESSAGE_MAP(TForm)



lo he probado pero no es realmente lo que quiero (que me lo detecte en los eventos KeyPress....) o al menos yo no se como hacerlo.

Tambien se habla del mensaje WmGetDlgCode pero o tampoco sirve o bien no se utilizarlo..

Necesito ayuda Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Puedes modificarlo de esta manera para que la tecla TAB llegue hasta el OnKeyPress:

Suponiendo que los controles de los que queremos hacernos cargo se llaman "Edit1" y "ListBox1":
Código:
private:   // User declarations

    void __fastcall CmDialogKey(TCMDialogKey& msg)
    {
        if (msg.CharCode == VK_TAB
            && ActiveControl != Edit1
            && ActiveControl != ListBox1)
        {
            TForm::Dispatch( &msg );
        }
    }
    BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(CM_DIALOGKEY, TCMDialogKey, CmDialogKey)
    END_MESSAGE_MAP(TForm)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Perfecto.

Muchas gracias Leo (otra vez)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.