Ver Mensaje Individual
  #13  
Antiguo 12-02-2006
i_berbeu i_berbeu is offline
Miembro
 
Registrado: sep 2005
Posts: 23
Reputación: 0
i_berbeu Va por buen camino
bueno vamos a ver si me explico mejor en lo que me falla... yo pongo este codigo(en c++ builder 5)
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnMessage = AppMessage;
//
// 79 es el código ASCII de la letra "O". No he conseguido encontrar la función
// correspondiente a "Ord" (en Delphi) aquí en C++ Builder. He probado con
// Integer("O") y con Cardinal("0"), pero, no funciona, así que al cabo he optado
// por pasar como tercer parámetro de "RegisterHotKey" el número 79, que ya sabes
// lo que quiere significar.
//
RegisterHotKey(Application->Handle, GlobalAddAtomA("MiHotKey"), MOD_CONTROL, 79);
}

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
UnregisterHotKey(Application->Handle, GlobalAddAtomA("MiHotKey"));
}

// Declarado en la cláusula "private" de "TForm1"
//
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_HOTKEY)
{
if ( (LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 79) )
ShowMessage("Pulsaste las teclas CTRL + O");
}
}

que es el que pusiste tu DEC
entonces segun lei, se supone que me deberia pillar la pulsacion de la tecla "o"
aunque mi formulario no tenga el foco. o teniendolo, me da igual....
el caso es que el evento onMessage me pilla en la variable Msg ciertos valores. entonces si miro esos valores en Msg.message tenemos valores del tipo 670, 610, 14, 1550 y cosas asi, que yo no entiendo como eso va a ser igual a VM_HOTKEY a menos que sea un tipo enumerado que no lo se
entonces, resulta que aunque pulse la "o" a mi el evento ese no me captura un mensage en el cual se meta dentro hasta el ShowMessage.

Espero haberme explicado bien con esto y a ver si me solucionais la duda alguno
Gracias
Responder Con Cita