|
Zdarzenia i komunikaty |
31.07.1999 |
- Zastosowanie komunikatu WM_HOTKEY.
W poniższym przykładzie przypiszemy do kombinacji klawiszy CTRL+ALT+F5 funkcję przywracającą okno naszej aplikacji na pierwszy plan.
//w pliku nagłówkowym
void __fastcall WMHotKey(TMessage &Msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_HOTKEY, TMessage, WMHotKey)
END_MESSAGE_MAP(TForm)
// w pliku źródłowym
const int ID = 1; // dla każdego skrótu inny numer
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// rejestruje "gorący klawisz"
RegisterHotKey(Handle, ID, MOD_CONTROL | MOD_ALT, VK_F5);
}
void __fastcall TForm1::WMHotKey(TMessage &Msg)
{
// jeżeli okno aplikacji nieaktywne, to przywraca je
if (!IsZoomed(Handle)) ::ShowWindow(Handle, SW_RESTORE);
// daje okno na pierwszy plan
SetForegroundWindow(Handle);
TForm::Dispatch(&Msg);
}
void __fastcall TForm1::FormClose(TObject *Sender,
TCloseAction &Action)
{
// zwalnia "gorący klawisz"
UnregisterHotKey(Handle, ID);
}
|