WM_TABLET_QUERYSYSTEMGESTURESTATUS 메시지

시스템에서 수신하려는 시스템 제스처를 창에 요청할 때 전송됩니다.

#define WM_TABLET_DEFBASE                    0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS   (WM_TABLET_DEFBASE + 12)       

매개 변수

wParam

사용되지 않습니다.

lParam

화면 좌표를 나타내는 점 값입니다.

설명

이 메시지를 처리하면 창의 영역에 대한 플리킹을 동적으로 사용하지 않도록 설정할 수 있습니다.

참고

lParam은 및 GET_Y_LPARAM 매크로를 사용하여 GET_X_LPARAM x 좌표 및 y 좌표로 변환할 수 있습니다.

 

기본적으로 창은 모든 시스템 제스처 이벤트를 받습니다. WndProcWM_TABLET_QUERYSYSTEMGESTURESTATUS 메시지에 응답하여 창을 받을 이벤트와 사용하지 않도록 설정할 이벤트를 선택할 수 있습니다. WM_TABLET_QUERYSYSTEMGESTURESTATUS 메시지는 tpcshrd.h에 정의되어 있습니다. 시스템 태블릿 시스템 제스처를 사용하거나 사용하지 않도록 설정하는 값도 다음과 같이 tpcshrd.h에 정의되어 있습니다.

#define TABLET_DISABLE_PRESSANDHOLD        0x00000001
#define TABLET_DISABLE_PENTAPFEEDBACK      0x00000008
#define TABLET_DISABLE_PENBARRELFEEDBACK   0x00000010
#define TABLET_DISABLE_TOUCHUIFORCEON      0x00000100
#define TABLET_DISABLE_TOUCHUIFORCEOFF     0x00000200
#define TABLET_DISABLE_TOUCHSWITCH         0x00008000
#define TABLET_DISABLE_FLICKS              0x00010000
#define TABLET_ENABLE_FLICKSONCONTEXT      0x00020000
#define TABLET_ENABLE_FLICKLEARNINGMODE    0x00040000
#define TABLET_DISABLE_SMOOTHSCROLLING     0x00080000
#define TABLET_DISABLE_FLICKFALLBACKKEYS   0x00100000
#define TABLET_ENABLE_MULTITOUCHDATA       0x01000000

참고

길게 누르기를 사용하지 않도록 설정하면 두 작업을 구분하는 대기 시간이 생성되므로 마우스 클릭에 대한 응답성이 향상됩니다.

 

WM_TABLET_QUERYSYSTEMGESTURESTATUS 메시지를 처리할 때는 주의해야 합니다. WM_TABLET_QUERYSYSTEMGESTURESTATUSSendMessageTimeout 함수를 사용하여 전달됩니다. COM 인터페이스에서 메서드를 호출하는 경우 해당 개체는 동일한 프로세스 내에 있어야 합니다. 그렇지 않은 경우 COM은 예외를 throw합니다.

예제

다음 예제에서는 WM_TABLET_QUERYSYSTEMGESTURESTATUS 사용하여 지역에 대해 플릭을 사용하지 않도록 설정하는 방법을 보여 줍니다.

#include <windowsx.h>        

(...)        
        
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
    case WM_TABLET_QUERYSYSTEMGESTURESTATUS:
        int x = GET_X_LPARAM(lParam);
        int y = GET_Y_LPARAM(lParam);
        if (x < xThreashold && y < yThreshold){
            // no flicks in the region specified by the threashold
            return TABLET_DISABLE_FLICKS;
        }
        // flicks will happen otherwise
        return 0;
}        
        

다음 예제에서는 전체 창에 대해 다양한 영화 기능을 사용하지 않도록 설정하는 방법을 보여 줍니다.

const DWORD dwHwndTabletProperty = 
    TABLET_DISABLE_PRESSANDHOLD | // disables press and hold (right-click) gesture
    TABLET_DISABLE_PENTAPFEEDBACK | // disables UI feedback on pen up (waves)
    TABLET_DISABLE_PENBARRELFEEDBACK | // disables UI feedback on pen button down (circle)
    TABLET_DISABLE_FLICKS; // disables pen flicks (back, forward, drag down, drag up)
        
void SetTabletpenserviceProperties(HWND hWnd){
    ATOM atom = ::GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY);    
    ::SetProp(hWnd, MICROSOFT_TABLETPENSERVICE_PROPERTY, reinterpret_cast<HANDLE>(dwHwndTabletProperty));
    ::GlobalDeleteAtom(atom);
}        
        

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱만 해당]
헤더
Tpcshrd.h