Akcelerator tabel

Akcelerator tabeli składa się z tablicy ACCEL struktur, każdy określenie indywidualnych akceleratora. Każdej budowli ACCEL zawiera następujące informacje:

Do przetwarzanie nacionięć klawiszy skrótu dla danego wątku, autora należy wywołać funkcję TranslateAccelerator w pętli komunikatów związanych z wątku wiadomości kolejki. Funkcja TranslateAccelerator monitoruje wprowadzanie danych z klawiatury do kolejki wiadomości, sprawdzanie kombinacje klawiszy, pasujące do pozycji w tabeli akceleratora. Gdy TranslateAccelerator znajdzie dopasowanie, tłumaczy wprowadzania klawiatury (oznacza to, że WM_KEYUP i WM_KEYDOWN wiadomości) do WM_COMMAND lub WM_SYSCOMMAND wiadomości i następnie wysyła wiadomość do procedury okna określonego okna. Na następującej ilustracji pokazano, jak są przetwarzane akceleratory.

Wiadomość WM_COMMAND zawiera identyfikator akceleratora, który spowodował TranslateAccelerator do generowania komunikatu. Procedurę okna sprawdza identyfikator ustalenie źródła wiadomości i odpowiednio przetwarza wiadomość.

Akcelerator tabel istnieją na dwóch różnych poziomach. System przechowuje tabelę akceleratora pojedynczy, całego systemu, która stosuje się do wszystkich wniosków. Aplikacja nie może modyfikować tabeli akceleratora systemu. Opis akceleratorów świadczone przez tabeli akceleratora systemu zobacz Przypisań klawiszy skrótu.

System utrzymuje również akceleratora tabele dla każdej aplikacji. Aplikację można zdefiniować dowolną liczbę tabel pedału przyspieszenia do użytku z własnym systemem windows. Uchwyt unikatowy 32-bitowych (HACCEL) identyfikuje każdej tabeli. Jednak tylko jeden akceleratora tabeli może być aktywna, a jednocześnie dla danego wątku. Uchwyt do tabeli akceleratora przekazanych do funkcji TranslateAccelerator określa, która tabela akceleratora jest aktywny dla wątku. W tabeli aktywnej akceleratora można zmienić w dowolnym momencie poprzez przepuszczanie uchwyt innej tabeli pedału przyspieszenia do TranslateAccelerator.

Index