[WinApi]Zarezerwowanie przycisku klawiatury
Ostatnio zmodyfikowano 2014-03-15 20:29
Trix Temat założony przez niniejszego użytkownika |
[WinApi]Zarezerwowanie przycisku klawiatury » 2014-03-15 14:49:37 Chcę zarezerwować dowolny przycisk klawiatury (np. 'p'), tak by moje okienko mimo zminimalizowania (ukrycia) odbierało informację o jego kliknięciu. Czy funkcja: "RegisterHotKey" sprawdzi się w tym? Co robię źle, że ta funkcja nie działa? ... if( RegisterHotKey( 0, 1, MOD_NOREPEAT, 'p' ) ) MessageBox( hwnd, "P zarezerwowany!", "Informacja", MB_ICONEXCLAMATION );
... LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_HOTKEY: MessageBox( hwnd, "P został kliknięty!", "Informacja", MB_ICONEXCLAMATION ); break; case WM_DESTROY: ... if( UnregisterHotKey( 0, 1 ) ) MessageBox( hwnd, "p zwolniony!", "Informacja", MB_ICONEXCLAMATION ); PostQuitMessage( 0 ); break; ... }
|
|
Monika90 |
» 2014-03-15 16:03:32 Chcę zarezerwować dowolny przycisk klawiatury (np. 'p'), tak by moje okienko mimo zminimalizowania (ukrycia) odbierało informację o jego kliknięciu.
|
Wtedy nie będzie można napisać litery p w innych programach.
RegisterHotKey( 0, 1, MOD_NOREPEAT, 'p' ) |
Jeżeli chesz odbierać komunikaty WM_HOTKEY w procedurze okna to musisz podać uchwyt tego okna przy rejestracji klawisza. Na dodatek 'p' to nie jet kod klawisza P, to jest kod klawisza F1. |
|
Trix Temat założony przez niniejszego użytkownika |
» 2014-03-15 20:29:27 Wtedy nie będzie można napisać litery p w innych programach.
Dałem przykład, program jest tak zaprojektowany, że użytkownik sam zdecyduje jaki klawisz będzie wywoływał reakcje programu.
Jeżeli chesz odbierać komunikaty WM_HOTKEY w procedurze okna to musisz podać uchwyt tego okna przy rejestracji klawisza. Na dodatek 'p' to nie jet kod klawisza P, to jest kod klawisza F1.
Zrobione, działa i dzięki po raz kolejny. Moim błędem było nie doczytanie do czego służy pierwszy podawany parametr.
|
|
« 1 » |