Share via


Windows Touch에 대한 올바른 접근 방식 선택

이 섹션에서는 사용할 수 있는 Windows Touch에 대한 다양한 접근 방식을 설명합니다.

여러 가지 방법으로 Windows Touch 기능을 사용하여 애플리케이션을 향상시킬 수 있습니다. 메서드를 채택하기 전에 애플리케이션으로 수행할 작업을 고려해야 합니다. Windows Touch의 경우 다음과 같은 시나리오가 일반적입니다.

  • 애플리케이션이 레거시 버전의 Windows와 동일하게 동작하지만 Windows Touch 메시지가 일관되게 작동하도록 합니다.
  • 애플리케이션에서 사용자 지정 개체 회전, 변환, 이동 또는 확대/축소 지원을 원합니다.
  • 애플리케이션에서 Windows Touch 제스처를 세밀하게 해석하거나 Windows Touch 입력에 특별히 최적화된 애플리케이션에서 여러 터치를 해석하려고 합니다.
  • RealTimeStylus 개체를 사용하고 Windows Touch 기능으로 향상하려는 애플리케이션이 있습니다.

애플리케이션이 레거시 버전의 Windows에서와 같이 작동하도록 합니다.

Windows 7에서 애플리케이션은 기본적으로 Windows Touch 기능을 사용하도록 설정하는 메시지를 생성합니다. 예를 들어 이동 제스처는 WM_*SCROLL 메시지를 트리거합니다. Windows 7의 기본 WM_GESTURE 처리기는 팬 지원 외에도 경계 피드백, 확대/축소 및 누르기 및 탭을 지원합니다. 경계 피드백은 레거시 지원도 통해 활성화됩니다. 제스처가 메시지에 매핑되는 방법에 대한 자세한 내용은 Windows 터치 제스처 개요 를 참조하세요. 이 기본 기능만 원하는 개발자는 Windows Touch API를 직접 작업할 필요가 없습니다.

참고 항목

사용자 지정 스크롤 막대 처리기는 WM_VSCROLL 메시지에 대한 SM_THUMBPOSITION 요청을 지원해야 하며 WM_HSCROLL 메시지에 대한 SB_LINELEFT 요청 및 SB_LINERIGHT 요청을 지원해야 합니다.

사용자 지정 개체 회전, 변환, 이동 또는 확대/축소 지원을 원합니다.

터치에 대해 제한된 지원을 원하지만 Windows 7에서 제공하는 기본 동작이 애플리케이션에 적합하지 않은 경우 제스처를 사용하여 애플리케이션을 향상시킬 수 있습니다. 제스처를 사용하면 WM_GESTURE 메시지를 처리하여 제스처 명령을 해석할 수 있습니다. 제스처에 대한 자세한 내용은 Windows 터치 제스처 섹션에서 확인할 수 있습니다. 애플리케이션이 높은 세분성 회전, 향상된 확대/축소 지원 또는 한 손가락 이동에 대해서만 지원이 필요한 경우 제스처는 Windows Touch 개발에 가장 적합한 방법입니다. 제스처 메시지를 해석하는 것 외에도 경계 피드백을 지원하도록 선택할 수 있습니다. 경계 피드백에 대한 자세한 내용은 Windows Touch 프로그래밍 참조의 경계 피드백 섹션을 참조하세요. Windows 7에서 명령 프롬프트와 Internet Explorer는 경계 피드백 및 제스처를 활용합니다.

여러 터치 포인트의 세분화된 제스처 해석 또는 사용자 지정 처리를 원합니다.

WM_GESTURE 메시지에서 제공하는 것보다 훨씬 더 구체적인 제스처 제어를 원하거나 여러 개체에서 여러 제스처를 해석하려는 경우 조작 프로세서를 사용해야 합니다. 조작 프로세서는 기본적으로 제스처의 상위 집합입니다. 조작 프로세서를 사용하려면 원시 터치 데이터를 피드하는 조작을 위해 이벤트 싱크를 구현해야 합니다.

제스처 해석 외에도 간단한 개체 물리학을 원하는 경우 관성 프로세서를 조작 프로세서와 함께 사용해야 합니다. 관성 프로세서는 조작 완료 시 조작 프로세서에서 속도 값을 가져와 조작 프로세서와 함께 작동합니다.

애플리케이션에서 여러 터치 포인트를 해석하려는 경우 WM_TOUCH 메시지에 대한 메시지 처리기를 만들어야 합니다.

Important

Windows 11 이상

일부 3-4-손가락 터치 조작은 기본적으로 Windows 앱에서 더 이상 작동하지 않습니다.

기본적으로 창을 전환하거나 최소화하고 가상 데스크톱을 변경하는 등의 작업을 위해 시스템에서 세 손가락 및 네 손가락 터치 조작을 사용합니다. 이제 이러한 조작이 시스템 수준에서 처리되기 때문에 이러한 변경으로 인해 앱 기능이 영향을 받을 수 있습니다.

애플리케이션 내에서 세 손가락 및 네 손가락 조작을 지원하기 위해 시스템에서 이러한 조작을 처리할지 여부를 지정하는 새로운 사용자 설정이 도입되었습니다.

Bluetooth 및 디바이스 > 터치 > "세 손가락 및 네 손가락 터치 제스처"

“켜짐”(기본값)으로 설정된 경우 시스템은 3 손가락 및 4 손가락 조작을 모두 처리합니다. 앱에서는 이러한 기능을 지원할 수 없습니다.

“꺼짐”으로 설정되면 앱에서 3 손가락 및 4 손가락 조작을 지원할 수 있습니다. 이러한 조작은 시스템에서 처리되지 않습니다.

애플리케이션에서 이러한 조작을 지원해야 하는 경우 이 설정을 사용자에게 알리고 해당 페이지에 설정 앱을 시작하는 링크를 제공하는 것이 좋습니다(ms-settings:devices-touch). 자세한 내용은 시작 관리자 참조하세요. LaunchUriAsync 메서드.

RealTimeStylus를 사용하는 애플리케이션에 Windows Touch 입력을 사용하도록 설정하려고 합니다.

태블릿 PC 플랫폼에서 여러 연락처에 대한 입력을 사용하도록 설정하려면 Windows Touch 데이터를 해석하는 사용자 지정 RealTimeStylus 플러그 인을 구현해야 합니다. Microsoft는 RealTimeStylus 플러그 인의 여러 연락처에서 입력할 수 있도록 ITablet3IRealTimeStylus3 인터페이스를 도입했습니다. 이러한 인터페이스는 여러 접점을 지원하도록 RealTimeStylus 플러그 인 확장을 간소화합니다.

여러 연락처에 대한 지원을 사용할 수 있는지 여부를 검사 IsMultiTouch를 호출합니다. 지원되는 연락처 수를 검사 GetMaximumCursors를 호출합니다. 여러 연락처 지원을 사용하거나 사용하지 않도록 설정하려면 MultiTouchEnabled를 호출합니다.

참고 항목

RealTimeStylus에서 여러 연락처를 사용하도록 설정하지 않으면 이동 및 확대/축소와 같은 제스처 메시지가 표시됩니다.

프로그래밍 가이드