Compartir a través de


Método IInputPanelInvocationConfiguration::RequireTouchInEditControl (inputpanelconfiguration.h)

Requiere que un usuario explícito pulse en un campo de edición antes de invocar el teclado táctil.

Sintaxis

HRESULT RequireTouchInEditControl();

Valor devuelto

El método RequireTouchInEditControl siempre devuelve S_OK.

Comentarios

Cuando se llama al método RequireTouchInEditControl , todos los cambios de foco futuros requieren una pulsación explícita del usuario en un campo de edición antes de invocar el teclado táctil. Puede llamar al método RequireTouchInEditControl varias veces, pero no hay forma de deshacer la configuración.

Esta configuración se aplica a cualquier evento de foco que tenga lugar en una ventana que se ejecuta en el proceso que lo llamó. El método RequireTouchInEditControl no afecta a las ventanas propiedad de otro proceso que tienen una cadena de propiedad al proceso actual que llamó RequireTouchInEditControl.

El método RequireTouchInEditControl siempre devuelve S_OK. Si se usa esta API, la propiedad IsUIBusy no tiene ningún efecto. Los dos modelos de interacción son esencialmente mutuamente excluyentes.

En el código siguiente se muestra cómo llamar al método RequireTouchInEditControl .

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

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

Nota Llamar a Release antes de que la aplicación termine de dibujar la interfaz de usuario puede provocar un comportamiento indefinido. Si el teclado táctil aún no se está ejecutando, llamar a Release podría hacer que se descargue tiptsf.dll, ya que no hay más referencias al archivo dll. Si esto ocurre, se pierde el estado establecido por el método RequireTouchInEditControl .
 
Si necesita retrasar la invocación del teclado táctil hasta un momento posterior, como cuando se hayan completado las animaciones o la manipulación directa, use la propiedad de automatización de la interfaz de usuario personalizada IsUIBusy . Para obtener más información, consulta Registrar propiedades personalizadas, eventos y patrones de control.

Al establecer IsUIBusy en True, el teclado táctil no cambia el estado visual en función de los cambios de foco dentro de la aplicación. Todavía es capaz de cambiar el estado visual en función de la invalidación de la acción del usuario, como el uso de un teclado físico o un descarte manual.

Al establecer IsUIBusy en False, el teclado táctil reanuda su comportamiento predeterminado y consulta de forma sincrónica para el control que tiene el foco.

En el código siguiente se muestra cómo registrar la propiedad de automatización de interfaz de usuario personalizada 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);
            } 

Requisitos

   
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Windows
Encabezado inputpanelconfiguration.h

Consulte también

IInputPanelInvocationConfiguration