다음을 통해 공유


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

참고 앱이 그리기 UI를 완료하기 전에 릴리스 를 호출하면 정의되지 않은 동작이 발생할 수 있습니다. 터치 키보드가 아직 실행되고 있지 않으면 릴리스 를 호출하면 dll에 대한 참조가 더 이상 없기 때문에 tiptsf.dll 언로드될 수 있습니다. 이 경우 RequireTouchInEditControl 메서드에 의해 설정된 상태가 손실됩니다.
 
애니메이션 또는 직접 조작이 완료될 때까지 터치 키보드 호출을 지연해야 하는 경우 IsUIBusy 사용자 지정 UI 자동화 속성을 사용합니다. 자세한 내용은 사용자 지정 속성, 이벤트 및 컨트롤 패턴 등록을 참조하세요.

IsUIBusyTrue로 설정하면 터치 키보드는 앱 내의 포커스 변경에 따라 시각적 상태를 변경하지 않습니다. 물리적 키보드 사용 또는 수동 해제와 같은 사용자 작업을 재정의하여 시각적 상태를 변경할 수 있습니다.

IsUIBusyFalse로 설정하면 터치 키보드가 기본 동작을 다시 시작하고 포커스가 있는 컨트롤에 대해 동기적으로 쿼리합니다.

다음 코드에서는 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

참고 항목

IInputPanelInvocationConfiguration