Cómo registrar teclas de acceso rápido globales
Esto es todo, le daré una rutina, incluido el uso de ResiterHotKey y el uso del procesamiento de mensajes, eche un vistazo detenidamente.
Este programa tiene un formulario Form1, y Form1 ha registrado una tecla de acceso rápido Ctrl F11. De ahora en adelante, mientras este programa se esté ejecutando, sin importar las circunstancias, siempre que presione Ctrl F11, <. /p>
Aparecerá un cuadro de mensaje.
//Unidad.H
//----------------------------- --- -----------------------------------------------
#ifndef Unidad1H
# define Unidad1H
//--------------------- --- ----------------------------------------------- ---
#include
#include
#include
#include
//-- --- ----------------------------------------------- --- --------------------
clase TForm1: TForm público
{
__published:/ / Componente de administración IDE
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
privado: // Declaración de usuario
//Esta función es un controlador de mensajes, conectado al mensaje especificado a través de la macro VCL_MESSAGE_HANDLER
void __ Puede agregar múltiples HANDLER entre BEGIN y END
BEGIN_MESSAGE_MAP
//Después de procesar el mensaje WM_HOTKEY y registrar la tecla de acceso rápido, presione la tecla de acceso rápido para enviar el mensaje a la ventana especificada
VCL_MESSAGE_HANDLER(WM_HOTKEY, TMessage, WMHotKey);
END_MESSAGE_MAP(TForm);
};
//--------------------- --- ---------------------------------- ------------- ----- -
PAQUETE externo TForm1 *Form1;
//---------------------- ---- ------------------------------------------ ---- -- p>
#endif
//Unidad1.CPP
//------------------ --- ----------------------------------------------- --- ---
# include
#pragma hdrstop
#include "Unit1.h"
//-- --- ----------------------------------------------- --- ------------- ------
#paquete pragma(smart_init)
#recurso pragma "*.dfm" p>
TForm1 *Form1;
//----
-------------------------------------------------- ----- ---------------------
__fastcall TForm1::TForm1(TComponent* Propietario)
:TForm(Propietario)
{
}
//-------------------- ----- --------------------------------------------- -----
// Esta es la implementación de la función de procesamiento de mensajes
void __fastcall TForm1.: WMHotKey(TMessage amp; Msg)
{
SetForegroundWindow(Handle);
ShowMessage("¡Tecla de acceso rápido registrada!");
}
// --- - ------- ------------------------------------------- ------- --------------
void __fastcall TForm1::FormCreate(TObject *Remitente)
{
RegisterHotKey(Handle, 0x1000, MOD_CONTROL, VK_F11);
//La oración anterior registra la tecla de acceso rápido, Handle es el identificador de la ventana, 0x1000 es el número de identificación, que se utiliza para establecer el valor único de la tecla de acceso rápido en el hilo
// El tercer parámetro indica la tecla del sistema que se presionará, y el último parámetro es el código de clave virtual de la clave
// Para más detalles, por favor consulte la Ayuda de MSDN
}
//------------------------------ ----------- ----------------------- -------
void __fastcall TForm1::FormDestroy(TObject * Sender)
{
UnregisterHotKey(Handle, 0x1000);
// UnregisterHotKey, 0x1000 corresponde al contenido anterior e indica la tecla de acceso rápido que se debe cancelar
}
//---------------------- ----------- --------------------------------------- ---