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 사용자 지정 UI 자동화 속성을 등록하는 방법을 보여줍니다.
/* 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 |
헤더 | inputpanelconfiguration.h |