Partager via


IInputPanelInvocationConfiguration::RequireTouchInEditControl, méthode (inputpanelconfiguration.h)

Nécessite un appui explicite de l’utilisateur dans un champ d’édition avant que le clavier tactile n’appelle.

Syntaxe

HRESULT RequireTouchInEditControl();

Valeur de retour

La méthode RequireTouchInEditControl retourne toujours S_OK.

Notes

Lorsque la méthode RequireTouchInEditControl est appelée, toutes les modifications de focus futures nécessitent un appui explicite de l’utilisateur dans un champ d’édition avant que le clavier tactile ne soit appelé. Vous pouvez appeler la méthode RequireTouchInEditControl plusieurs fois, mais il n’existe aucun moyen d’annuler le paramètre.

Ce paramètre s’applique à tout événement focus qui se produit sur une fenêtre qui s’exécute dans le processus qui l’a appelée. La méthode RequireTouchInEditControl n’affecte pas les fenêtres appartenant à un autre processus qui ont une chaîne de propriété au processus actuel appelé RequireTouchInEditControl.

La méthode RequireTouchInEditControl retourne toujours S_OK. Si cette API est utilisée, la propriété IsUIBusy n’a aucun effet. Les deux modèles d’interaction sont essentiellement mutuellement exclusifs.

Le code suivant montre comment appeler la méthode RequireTouchInEditControl .

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

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

Note L’appel de Release avant la fin de l’interface utilisateur de dessin de l’application peut entraîner un comportement non défini. Si le clavier tactile n’est pas encore en cours d’exécution, l’appel de Release peut entraîner le déchargement de tiptsf.dll, car il n’y a plus de références à la dll. Si cela se produit, l’état défini par la méthode RequireTouchInEditControl est perdu.
 
Si vous devez retarder l’appel du clavier tactile jusqu’à une date ultérieure, par exemple lorsque les animations ou la manipulation directe sont terminées, utilisez la propriété d’automatisation de l’interface utilisateur personnalisée IsUIBusy . Pour plus d’informations, consultez Inscription de propriétés personnalisées, d’événements et de modèles de contrôle.

Lorsque vous définissez IsUIBusy sur True, le clavier tactile ne change pas d’état visuel en fonction des modifications apportées au focus dans l’application. Il est toujours en mesure de modifier l’état visuel en fonction de l’action de substitution de l’utilisateur, comme l’utilisation d’un clavier physique ou d’un renvoi manuel.

Lorsque vous définissez IsUIBusy sur False, le clavier tactile reprend son comportement par défaut et interroge de manière synchrone le contrôle qui a le focus.

Le code suivant montre comment inscrire la propriété d’automatisation de l’interface utilisateur personnalisée IsUIBusy .

/* 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);
            } 

Configuration requise

   
Client minimal pris en charge Windows 8
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Windows
En-tête inputpanelconfiguration.h

Voir aussi

IInputPanelInvocationConfiguration