Windows 터치 제스처 개요
이 섹션에서는 Windows Touch에서 지원하는 다양한 제스처에 대해 설명합니다.
제스처 개요
Windows Touch를 사용하면 단일 및 여러 연락처를 지원하는 여러 제스처를 사용할 수 있습니다. 다음 이미지는 Windows 7에서 지원되는 다양한 제스처를 보여 줍니다.
참고
일부 인식기는 연락처가 서로 더 떨어져 있을 때 여러 연락처로 제스처를 해석하는 데 더 안정적입니다.
레거시 지원
레거시 지원을 위해 기본 제스처 처리기는 이전 버전의 Windows에서 사용된 Windows 메시지에 일부 제스처를 매핑합니다. 다음 표에서는 제스처가 레거시 메시지에 매핑되는 방법을 간략하게 설명합니다.
제스처 | 설명 | 메시지 생성됨 |
---|---|---|
이동 | 이동 제스처는 스크롤 휠을 사용하여 에 매핑합니다. |
WM_VSCROLL WM_HSCROLL |
길게 누르기 | 길게 누르기 제스처는 마우스를 마우스 오른쪽 단추로 클릭하는 데 매핑됩니다. |
WM_RBUTTONDOWN WM_RBUTTONUP |
Zoom | 확대/축소 제스처는 Ctrl 키를 누르고 마우스 휠을 회전하여 스크롤하는 것과 유사한 메시지를 트리거합니다. | wParam에서 MK_CONTROL 설정된 WM_MOUSEWHEEL |
Windows 터치 제스처 해석
Windows Touch 제스처는 애플리케이션의 WndProc 함수에서 WM_GESTURE 메시지를 처리하여 애플리케이션 개발자가 해석할 수 있습니다. 이 메시지를 처리한 후 제스처를 설명하는 GESTUREINFO 구조를 검색할 수 있습니다. GESTUREINFO 구조에는 제스처 유형에 따라 다양한 정보가 있습니다.
GESTUREINFO 구조체는 핸들을 제스처 정보 구조체에 GetGestureInfo 함수에 전달하여 검색됩니다.
다음 플래그는 제스처의 다양한 상태를 나타내며 dwFlags에 저장됩니다.
속성 | 값 | Description |
---|---|---|
GF_BEGIN | 0x00000001 | 제스처가 시작됩니다. |
GF_INERTIA | 0x00000002 | 제스처가 관성 트리거되었습니다. |
GF_END | 0x00000004 | 제스처가 완료되었습니다. |
참고
대부분의 애플리케이션은 GID_BEGIN 무시하고 GID_ENDDefWindowProc에 전달해야 합니다. 이러한 메시지는 기본 제스처 처리기에서 사용됩니다. GID_BEGIN 및 GID_END 메시지가 타사 애플리케이션에서 사용되는 경우 애플리케이션 동작 은 정의되지 않습니다.
다음 표에서는 제스처에 대한 다양한 식별자를 나타냅니다.
속성 | 값 | Description |
---|---|---|
GID_BEGIN | 1 | 제스처가 시작됩니다. |
GID_END | 2 | 제스처가 종료됩니다. |
GID_ZOOM | 3 | 확대/축소 제스처입니다. |
GID_PAN | 4 | 이동 제스처입니다. |
GID_ROTATE | 5 | 회전 제스처입니다. |
GID_TWOFINGERTAP | 6 | 두 손가락 탭 제스처입니다. |
GID_PRESSANDTAP | 7 | 누르고 탭 제스처입니다. |
참고
GID_PAN 제스처에는 관성 기능이 내장되어 있습니다. 이동 제스처가 끝나면 운영 체제에서 추가 이동 제스처 메시지를 만듭니다.
GESTUREINFO 구조체 멤버 ptsLocation 및 ullArguments는 점(POINTS 구조 사용)과 제스처에 따라 제스처에 대한 추가 정보를 지정합니다. 다음 표에서는 각 제스처 유형과 연결된 값을 나열합니다.
제스처 ID | ullArguments | ptsLocation |
---|---|---|
GID_ZOOM | 두 점 사이의 거리를 나타냅니다. | 확대/축소의 중심을 나타냅니다. |
GID_PAN | 두 점 사이의 거리를 나타냅니다. | 팬의 현재 위치를 나타냅니다. |
GID_ROTATE | GF_BEGIN 플래그가 설정된 경우 회전 각도를 나타냅니다. 그렇지 않으면 회전이 시작된 이후의 각도 변경입니다. 회전 방향을 나타내기 위해 서명됩니다. GID_ROTATE_ANGLE_FROM_ARGUMENT 및 GID_ROTATE_ANGLE_TO_ARGUMENT 매크로를 사용하여 각도 값을 가져와서 설정합니다. | 이는 대상 개체가 회전되는 고정 지점인 회전의 중심을 나타냅니다. |
GID_TWOFINGERTAP | 두 손가락 사이의 거리를 나타냅니다. | 두 손가락의 중심을 나타냅니다. |
GID_PRESSANDTAP | 첫 번째 손가락과 두 번째 손가락 사이의 델타를 나타냅니다. 이 값은 ullArguments 멤버의 하위 32비트에서 POINT 구조체에 저장됩니다. | 첫 번째 손가락이 내려 오는 위치를 나타냅니다. |