Tastaturbehandlung für Steuerelemente

Ein Steuerelement reagiert auf Zugriffstasten, damit der Endbenutzer Aktionen initiieren kann, die vom Steuerelement ausgeführt werden. Der Container verwaltet die Tastaturaktivität für alle eingebetteten Steuerelemente. Bei zusammengesetzten Dokumenten gelten Tastaturbeschleunigungen nur für das derzeit aktive Objekt. Mit Steuerelementen wurde ein Mechanismus hinzugefügt, sodass ein Steuerelement auch dann auf seine Mnemonic-Tastatur reagieren kann, wenn es derzeit nicht benutzeroberflächenaktiv ist.

Die Methoden IOleControl::GetControlInfo und IOleControl::OnMnemonic und die IOleControlSite::OnControlInfoChanged-Methode verarbeiten die Mnemonic-Tastatur eines Steuerelements. Eine CONTROLINFO-Struktur beschreibt die mnemonischen Zugriffstasten eines Steuerelements, und die flags, die über die GetControlInfo-Methode an das Steuerelement übergeben werden, beschreiben das Verhalten der Steuerelemente mit den Eingabe- und ESC-Schlüsseln. Wenn ein Steuerelement seine Mnemonics ändert, ruft es OnControlInfoChanged auf, damit der Container die Struktur bei Bedarf erneut laden kann.

Wenn ein Steuerelement auf der Benutzeroberfläche aktiv ist, ist es auch das Steuerelement mit dem Fokus. Wenn Steuerelemente zwischen dem aktiven Zustand und dem aktiven Zustand der Benutzeroberfläche aktiviert und deaktiviert werden, ruft das Steuerelement IOleControlSite::OnFocus auf, um den Container über solche Änderungen zu informieren.

Wenn ein Steuerelement auf der Benutzeroberfläche aktiv ist, hat es außerdem die erste Möglichkeit, Tastatureingaben zu verarbeiten. Um einem Container die Möglichkeit zu geben, die Tastatureingabe vor dem Steuerelement zu verarbeiten, ruft das Steuerelement IOleControlSite::TranslateAcceleratorauf. Wenn der Container die Tastatureingabe nicht verarbeitet, verarbeitet das Steuerelement ihn.

ActiveX-Steuerelemente