시스템 이벤트 및 마우스 메시지
애플리케이션은 Microsoft Windows 마우스 메시지와 시스템 이벤트를 모두 전송하여 태블릿 펜의 최적의 디자인과 사용을 통합합니다. 애플리케이션은 각 펜 이동 또는 동작에 대한 이벤트 집합을 모두 받습니다. 그런 다음 애플리케이션은 작업의 컨텍스트에 따라 사용할 적절한 이벤트를 선택합니다. Windows 마우스 메시지는 활동을 가리키고 선택하는 데 적합하며 UI(사용자 인터페이스) 요소와의 상호 작용을 포함하는 활동에 사용해야 합니다. 펜 이벤트는 실시간 잉크 응용 프로그램, 펜 작업 및 필기에서 잘 작동합니다.
참고 항목
펜 이벤트와 마우스 메시지는 펜 또는 마우스 사용 여부에 관계 없이 애플리케이션으로 전송됩니다.
마우스 및 터치와 펜 입력 구분
애플리케이션이 마우스 메시지(예: WM_LBUTTONDOWN)를 수신하면 GetMessageExtraInfo 함수를 호출하여 메시지가 펜 또는 마우스 장치에서 발생했는지 여부를 평가할 수 있습니다.
GetMessageExtraInfo에서 반환된 값은 0xFFFFFF00 대해 마스크 검사 0xFF515700 비교해야 합니다. 다음 정의는 이를 더 명확하게 만들 수 있습니다.
#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE
비교가 true이면 이 마우스 메시지가 태블릿 PC 펜 또는 터치 스크린에 의해 생성되었습니다. 다른 모든 경우에서는 이 메시지가 마우스 디바이스에 의해 생성되었다고 가정할 수 있습니다.
GetMessageExtraInfo에서 반환된 하위 8비트가 변수입니다. 이러한 비트 중 7(0x7F 의해 마스킹된 하위 7)은 커서 ID, 마우스의 경우 0 또는 펜 ID의 변수 값을 나타내는 데 사용됩니다. 또한 Windows Vista에서는 0x80 의해 마스킹된 여덟 번째 비트가 펜 입력(0 = 펜, 1 = 터치)과 터치 입력을 구분하는 데 사용됩니다.
자세한 내용은 포인터 장치 입력 및 터치 입력을 참조하세요.
지원되는 시스템 제스처
다음 표에서는 현재 Windows XP Tablet PC Edition에 포함된 시스템 제스처를 나열하고, 해당 펜 작업 및 시스템 이벤트를 자세히 설명하며, 기존 마우스 동작과 관련된 방법을 보여 줍니다.
펜 제스처 | 마우스 작업 | 펜 제스처 설명 | 이벤트 메시지 | 마우스 메시지 | Windows 기반 애플리케이션의 동작 |
---|---|---|---|---|---|
누르기 |
마우스 왼쪽 단추로 클릭 |
펜으로 화면을 한 번 탭합니다. |
ISG_TAP 펜을 들어 올릴 때 전송됩니다. |
펜을 들어 올릴 때 WM_LBUTTONDOWN 및 WM_LBUTTONUP 전송됩니다. |
메뉴 또는 도구 모음에서 명령을 선택하고, 명령을 선택한 경우 작업을 수행하며, IP(삽입 지점)를 설정하고, 선택 피드백을 표시합니다. |
두 번 탭 |
두 번 클릭 |
빠른 연속으로 화면을 두 번 탭합니다. |
ISG_DOUBLETAP 두 번째 탭(아래쪽)에서 전송됩니다. 첫 번째 탭에서 전송된 ISG_TAP 이벤트입니다. |
WM_LBUTTONDBLCLK 두 번째 탭(아래쪽)에 전송됩니다. WM_LBUTTONDOWN 및 WM_LBUTTONUP 한 번의 탭으로 첫 번째 탭(위쪽)에 전송됩니다. |
단어를 선택하고 파일 또는 폴더를 엽니다. |
길게 누르기 |
그런 다음 |
화면을 탭하고 마우스 아이콘이 나타날 때까지 길게 누른 다음 펜을 들어 올려 바로 가기 메뉴를 표시합니다. 애플리케이션은 펜을 들어 올릴 때 오른쪽 클릭 메뉴를 표시하는 작업과 다른 작업을 수행하도록 선택할 수 있습니다. |
펜이 충분히 오래 내려갔을 때 ISG_HOLDENTER 전송되었습니다. ISG_RIGHTTAP 펜이 들어 올려지고 마우스 오른쪽 단추 클릭이 발생할 때 전송됩니다. |
마우스 오른쪽 단추를 클릭할 때(펜이 들어올릴 때) WM_RBUTTONDOWN 및 WM_RBUTTONUP 전송됩니다. |
바로 가기 메뉴를 표시합니다. |
홀드스루 |
마우스 왼쪽 단추로 클릭 |
화면을 탭하고 마우스 아이콘이 나타나고 사라질 때까지 길게 누릅니다. 사용자는 사고 집계를 길게 누르고 탭하기만 되돌리기 때 이 작업을 수행할 수 있습니다. |
ISG_TAP 펜을 들어 올릴 때 전송됩니다. |
펜을 들어 올릴 때 WM_LBUTTONDOWN 및 WM_LBUTTONUP 전송됩니다. |
오랫동안 마우스 왼쪽 단추를 클릭합니다. 마우스에 해당하는 항목이 없습니다. 이는 사용자가 오랫동안 길게 누르고 있는 경우에 대한 대체입니다. 이벤트는 탭으로 되돌리기. |
끌기 |
왼쪽 끌기 |
화면을 탭하여 이동할 개체를 선택한 다음 개체를 선택한 후 끌어옵니다. |
끌기가 시작될 때 전송되는 ISG_DRAG. |
WM_LBUTTONDOWN 끌기가 시작될 때 전송된 다음 일련의 마우스 이동 메시지와 WM_LBUTTONUP 이벤트가 뒤따릅니다. |
IP로 시작할 때 Microsoft Word에서와 같이 끌어서 선택합니다. 여러 단어를 선택합니다. Windows에서 개체를 끌 때와 같이 끌어옵니다. 스크롤. |
길게 누른 다음 끌기 |
오른쪽 끌기 |
화면을 탭하여 이동할 개체를 선택합니다. 마우스 아이콘이 나타날 때까지 길게 누른 다음 끌어 개체를 이동합니다. 펜을 들어 올려 바로 가기 메뉴를 표시합니다. |
ISG_HOLDENTER 펜이 몇 시간 동안 다운되었을 때 전송됩니다. 끌기가 시작될 때 전송되는 ISG_RIGHTDRAG. |
끌기가 시작될 때 전송된 WM_RBUTTONDOWN 일련의 마우스 이동 메시지와 WM_RBUTTONUP 이벤트가 뒤따릅니다. |
개체 또는 선택 영역을 끌어서 상황에 맞는 메뉴로 끌어다 옵니다. |
펜 가리키기 |
마우스 가리키기 |
화면에서 작은 거리에서 펜을 안정적으로 유지합니다. |
ISG_HOVERENTER 이벤트가 처음에 전송되었습니다. 가리키기 간격이 완료되면 ISG_HOVERLEAVEis 전송됩니다. |
해당하는 마우스 메시지가 없습니다. |
도구 설명, 롤오버 효과 및 기타 마우스 가리키기 동작을 표시합니다. |
공중 쉐이크 |
태블릿 PC 입력 패널을 표시 합니다. 마우스에 해당하는 항목이 없습니다. |
펜을 좌우로 빠르게 이동하여 위의 팁을 들고 화면 범위 내에서 이동합니다. |
이벤트가 애플리케이션에 전달되지 않습니다. |
해당하는 마우스 메시지가 없습니다. |
새로운, 태블릿 PC에 특정. |
스타일러스 및 터치 조작 지정
기본적으로 창은 모든 시스템 제스처 이벤트를 수신하고 기본 상호 작용 모델을 사용합니다. 이 모델의 일부 부분이 애플리케이션을 방해할 수 있으므로 WndProc의 WM_TABLET_QUERYSYSTEMGESTURESTATUS 메시지에 응답하여 선택적으로 사용하지 않도록 설정할 수 있습니다.