Condividi tramite


Metodo IInputPanelInvocationConfiguration::RequireTouchInEditControl (inputpanelconfiguration.h)

Richiede un tocco esplicito da parte dell'utente in un campo di modifica prima che la tastiera virtuale richiami.

Sintassi

HRESULT RequireTouchInEditControl();

Valore restituito

Il metodo RequireTouchInEditControl restituisce sempre S_OK.

Commenti

Quando viene chiamato il metodo RequireTouchInEditControl , tutte le modifiche future dello stato attivo richiedono un tocco esplicito dell'utente in un campo di modifica prima che la tastiera virtuale richiami. È possibile chiamare il metodo RequireTouchInEditControl più volte, ma non è possibile annullare l'impostazione.

Questa impostazione si applica a qualsiasi evento di stato attivo che si verifica in una finestra in esecuzione nel processo che lo ha chiamato. Il metodo RequireTouchInEditControl non influisce sulle finestre di proprietà in un altro processo con una catena di proprietà per il processo corrente denominato RequireTouchInEditControl.

Il metodo RequireTouchInEditControl restituisce sempre S_OK. Se questa API viene usata, la proprietà IsUIBusy non ha alcun effetto. I due modelli di interazione si escludono essenzialmente a vicenda.

Il codice seguente illustra come chiamare il metodo RequireTouchInEditControl .

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

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

Nota La chiamata a Release prima del completamento dell'interfaccia utente di disegno dell'app può causare un comportamento indefinito. Se la tastiera virtuale non è già in esecuzione, la chiamata a Release potrebbe causare il caricamento di tiptsf.dll, perché non sono presenti altri riferimenti alla DLL. In questo caso, lo stato impostato dal metodo RequireTouchInEditControl viene perso.
 
Se è necessario ritardare la chiamata della tastiera virtuale fino a un secondo momento, ad esempio quando sono state completate le animazioni o la manipolazione diretta, usare la proprietà di automazione dell'interfaccia utente personalizzata IsUIBusy . Per altre info, vedi Registrazione di proprietà, eventi e pattern di controllo personalizzati.

Quando imposti IsUIBusy su True, la tastiera virtuale non modifica lo stato di visualizzazione in base alle modifiche dello stato attivo all'interno dell'app. È comunque in grado di modificare lo stato di visualizzazione in base all'override dell'azione dell'utente, come l'uso di una tastiera fisica o la chiusura manuale.

Quando si imposta IsUIBusy su False, la tastiera virtuale riprende il comportamento predefinito e le query in modo sincrono per il controllo con stato attivo.

Il codice seguente illustra come registrare la proprietà di automazione dell'interfaccia utente personalizzata 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);
            } 

Requisiti

   
Client minimo supportato Windows 8
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Windows
Intestazione inputpanelconfiguration.h

Vedi anche

IInputPanelInvocationConfiguration