IInputPanelInvocationConfiguration::RequireTouchInEditControl-Methode (inputpanelconfiguration.h)

Erfordert ein explizites Tippen eines Benutzers in ein Bearbeitungsfeld, bevor die Touchtastatur aufgerufen wird.

Syntax

HRESULT RequireTouchInEditControl();

Rückgabewert

Die RequireTouchInEditControl-Methode gibt immer S_OK zurück.

Hinweise

Wenn die RequireTouchInEditControl-Methode aufgerufen wird, erfordern alle zukünftigen Fokusänderungen, dass der Benutzer explizit auf ein Bearbeitungsfeld tippt, bevor die Touchtastatur aufgerufen wird. Sie können die RequireTouchInEditControl-Methode mehrmals aufrufen, aber es gibt keine Möglichkeit, die Einstellung rückgängig zu machen.

Diese Einstellung gilt für jedes Fokusereignis, das für ein Fenster stattfindet, das in dem Prozess ausgeführt wird, der es aufgerufen hat. Die RequireTouchInEditControl-Methode wirkt sich nicht auf eigene Fenster in einem anderen Prozess aus, die eine Besitzkette mit dem aktuellen Prozess mit dem Namen RequireTouchInEditControl aufweisen.

Die RequireTouchInEditControl-Methode gibt immer S_OK zurück. Wenn diese API verwendet wird, hat die IsUIBusy-Eigenschaft keine Auswirkung. Die beiden Interaktionsmodelle schließen sich im Wesentlichen aus.

Der folgende Code zeigt, wie Die RequireTouchInEditControl-Methode aufgerufen wird .

#include <inputpanelconfiguration.h>
#include <inputpanelconfiguration_i.c>

IInputPanelInvocationConfiguration *pInputPanelInvocationConfiguration;
CoCreateInstance(CLSID_InputPanelConfiguration, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pInputPanelInvocationConfiguration));
pInputPanelInvocationConfiguration->RequireTouchInEditControl();

Hinweis Das Aufrufen von Release , bevor die Zeichnungsbenutzeroberfläche der App beendet wird, kann zu nicht definiertem Verhalten führen. Wenn die Touchtastatur noch nicht ausgeführt wird, kann das Aufrufen von Release dazu führen, dass tiptsf.dll entladen wird, da keine Verweise mehr auf die DLL vorhanden sind. In diesem Fall geht der von der RequireTouchInEditControl-Methode festgelegte Zustand verloren.
 
Wenn Sie den Aufruf der Touchtastatur bis zu einem späteren Zeitpunkt verzögern müssen, z. B. wenn Animationen oder direkte Bearbeitung abgeschlossen sind, verwenden Sie die benutzerdefinierte Ui-Automatisierungseigenschaft IsUIBusy . Weitere Informationen finden Sie unter Registrieren von benutzerdefinierten Eigenschaften, Ereignissen und Steuerelementmustern.

Wenn Sie IsUIBusy auf True festlegen, ändert die Touchtastatur den visuellen Zustand nicht basierend auf Fokusänderungen innerhalb der App. Es ist weiterhin in der Lage, den visuellen Zustand basierend auf der Überschreibung von Benutzeraktionen zu ändern, z. B. mithilfe einer physischen Tastatur oder einer manuellen Kündigung.

Wenn Sie IsUIBusy auf False festlegen, setzt die Touchtastatur ihr Standardverhalten fort und fragt synchron nach dem Steuerelement ab, das den Fokus hat.

Der folgende Code zeigt, wie Die benutzerdefinierte Ui-Automatisierungseigenschaft IsUIBusy registriert wird.

/* 03391bea-6681-474b-955c-60f664397ac6 */
DEFINE_GUID(
    GUID_UIBusy, 
    0x03391bea, 0x6681, 0x474b, 0x95, 0x5c, 0x60, 0xf6, 0x64, 0x39, 0x7a, 0xc6);

UIAutomationPropertyInfo customPropertyInfo =
            {
                GUID_UIBusy,
                L"IsUIBusy",
                UIAutomationType_Bool
            };

            CComPtr<IUIAutomationRegistrar> spRegistrar;
            hr = spRegistrar.CoCreateInstance(
                CLSID_CUIAutomationRegistrar, 
                nullptr, 
                CLSCTX_INPROC_SERVER);
            if (SUCCEEDED(hr))
            {
                PATTERNID customPropertyId;
                hr = spRegistrar->RegisterProperty(&customPropertyInfo, &customPropertyId);
            } 

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Windows
Kopfzeile inputpanelconfiguration.h

Weitere Informationen

IInputPanelInvocationConfiguration