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 좌표로 변환할 수 있습니다.
기본적으로 창은 모든 시스템 제스처 이벤트를 받습니다. WndProc의 WM_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 [데스크톱 앱만 해당] |
헤더 |
|