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();
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 |