Obsługa klawiatury dla kontrolek
Kontrolka reaguje na akceleratory klawiatury, aby użytkownik końcowy mógł inicjować akcje wykonywane przez kontrolkę. Kontener zarządza działaniem klawiatury dla wszystkich osadzonych kontrolek. W przypadku dokumentów złożonych akceleratory klawiatury mają zastosowanie tylko do aktualnie aktywnego obiektu. W przypadku kontrolek dodano mechanizm, który umożliwia kontrolce reagowanie na jej mnemoniki klawiaturowe, nawet jeśli nie jest obecnie aktywna w interfejsie użytkownika.
Metody IOleControl::GetControlInfo, IOleControl::OnMnemonic oraz IOleControlSite::OnControlInfoChanged obsługują mnemoniki klawiatury kontrolki. Struktura CONTROLINFO opisuje akceleratory mnemotechniczne kontrolki, a flagi przekazywane z powrotem za pomocą metody GetControlInfo opisują zachowanie kontrolek przy użyciu klawiszy Enter i Esc. Gdy kontrolka zmienia swoje mnemoniki, wywołuje OnControlInfoChanged, aby kontener mógł załadować strukturę ponownie, jeśli to konieczne.
Gdy kontrolka jest aktywna, jest to również kontrolka z fokusem. Gdy kontrolki są aktywowane i dezaktywowane między stanami aktywności w miejscu a aktywności UI, kontrolka wywołuje IOleControlSite::OnFocus, aby poinformować kontener o takich zmianach.
Ponadto, gdy kontrolka interfejsu użytkownika (UI) jest aktywna, będzie miała pierwszą możliwość przetworzenia naciśnięć klawiszy. Aby umożliwić kontenerowi przetwarzanie naciśnięć przed kontrolką, kontrolka wywołuje IOleControlSite::TranslateAccelerator. Jeśli kontener nie obsługuje naciśnięcia klawisza, kontrolka następnie je przetwarza.
Tematy pokrewne