Accelerator tabeller

En Web Slice-tabell består av en matrise for ACCEL strukturer, hver definere et individuelle Hurtigvalg. Hver ACCEL strukturen inneholder følgende opplysninger:

Behandle Hurtigvalg tastetrykk for en gitt tråd, må utvikleren kalle funksjonen TranslateAccelerator i meldingsløkke tilknyttet trådens meldingskøen. Funksjonen TranslateAccelerator overvåker tastaturinndata til meldingskøen, ser etter tastekombinasjoner som samsvarer med en oppføring i tabellen accelerator. Når TranslateAccelerator finner en match, oversetter tastaturinndata (det vil si WM_KEYUP og WM_KEYDOWN -meldinger) inn i en WM_COMMAND - eller WM_SYSCOMMAND -melding, og sender deretter meldingen i vinduet prosedyren av det angitte vinduet. Illustrasjonen nedenfor viser hvordan akseleratorer behandles.

WM_COMMAND meldingen inneholder identifikator for akseleratoren som forårsaket TranslateAccelerator å generere meldingen. Vinduet prosedyren undersøker identifikatoren til å bestemme kilden til meldingen og deretter behandler meldingen tilsvarende.

Accelerator tabeller finnes på to forskjellige nivåer. Systemet opprettholder en enkelt, systemomfattende accelerator tabell som gjelder for alle programmer. Et program kan ikke endre systemet accelerator-tabellen. En beskrivelse av akseleratorer levert av systemet accelerator tabellen, kan du se Accelerator tastetrykk tildelinger.

Systemet opprettholder også accelerator tabeller for hvert program. Et program kan definere et ubegrenset antall accelerator tabeller for bruk med sin egen windows. En unik handle for 32-biters (HACCEL) identifiserer hver tabell. Imidlertid kan bare én accelerator-tabellen være aktiv om gangen for en bestemt tråd. Referanse til tabellen accelerator sendes til TranslateAccelerator -funksjonen bestemmer hvilken accelerator-tabell som er aktiv for en tråd. Tabellen aktive accelerator kan endres når som helst ved å sende en annen accelerator-tabell-håndtak til TranslateAccelerator.

Index