Метод IInputPanelInvocationConfiguration::RequireTouchInEditControl (inputpanelconfiguration.h)
Требует явного касания пользователя в поле редактирования перед вызовом сенсорной клавиатуры.
Синтаксис
HRESULT RequireTouchInEditControl();
Возвращаемое значение
Метод RequireTouchInEditControl всегда возвращает S_OK.
Комментарии
При вызове метода RequireTouchInEditControl все будущие изменения фокуса требуют явного касания пользователем поля редактирования перед вызовом сенсорной клавиатуры. Метод RequireTouchInEditControl можно вызывать несколько раз, но отменить этот параметр невозможно.
Этот параметр применяется к любому событию фокуса, которое происходит в окне, которое выполняется в процессе, который его вызвал. Метод RequireTouchInEditControl не влияет на принадлежащие окна в другом процессе, который имеет цепочку владения с текущим процессом, который называется RequireTouchInEditControl.
Метод RequireTouchInEditControl всегда возвращает S_OK. Если используется этот API, свойство IsUIBusy не действует. Эти две модели взаимодействия, по сути, являются взаимоисключающими.
В следующем коде показано, как вызвать метод RequireTouchInEditControl .
#include <inputpanelconfiguration.h>
#include <inputpanelconfiguration_i.c>
IInputPanelInvocationConfiguration *pInputPanelInvocationConfiguration;
CoCreateInstance(CLSID_InputPanelConfiguration, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pInputPanelInvocationConfiguration));
pInputPanelInvocationConfiguration->RequireTouchInEditControl();
Если для параметра IsUIBusy задано значение True, сенсорная клавиатура не изменяет визуальное состояние в зависимости от изменений фокуса в приложении. Он по-прежнему может изменять визуальное состояние на основе переопределения действий пользователя, таких как использование физической клавиатуры или закрытие вручную.
Если для IsUIBusy задано значение False, сенсорная клавиатура возобновляет работу по умолчанию и синхронно запрашивает элемент управления с фокусом.
В следующем коде показано, как зарегистрировать свойство автоматизации пользовательского интерфейса 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);
}
Требования
Минимальная версия клиента | Windows 8 |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Windows |
Header | inputpanelconfiguration.h |