다음을 통해 공유


Windows 터치 제스처 샘플(MTGestures)

이 섹션에서는 Windows 터치 제스처 샘플에 대해 설명합니다.

Windows 터치 제스처 샘플은 제스처 메시지를 사용하여 WM_GESTURE 메시지를 처리하여 GDI(그래픽 디바이스 인터페이스)에서 렌더링한 상자를 변환, 회전 및 크기 조정하는 방법을 보여 줍니다. 다음 스크린샷은 샘플이 실행 중일 때 어떻게 보이는지 보여줍니다.

실행 중일 때 Windows 터치 제스처 샘플을 보여 주는 스크린샷, 화면에 검은색 윤곽선이 있는 흰색 사각형 회전

이 샘플의 경우 제스처 메시지는 제스처 엔진에 전달된 다음, 그리기 개체에 대한 메서드를 호출하여 이러한 명령을 처리하는 메서드가 있는 개체를 변환, 회전 및 크기 조정합니다. 샘플의 작동 방식을 보여 주려면 두 손가락 탭 명령을 사용하여 렌더링된 상자에서 대각선을 사용하거나 사용하지 않도록 설정하는 단계를 고려합니다. 사용자는 프로그램에서 처리하는 메시지를 생성하는 두 손가락 탭 제스처를 수행합니다. 메시지가 처리되면 그리기 개체에서 대각선을 렌더링하기 위해 부울을 토글하고 개체는 대각선을 렌더링합니다.

다음 코드에서는 WndProc 메서드에서 제스처 메시지를 제스처 엔진에 전달하는 방법을 보여 줍니다.

    case WM_GESTURE:
        // The gesture-processing code is implemented in the CGestureEngine
        // class.
        return g_cGestureEngine.WndProc(hWnd,wParam,lParam);
        break;

다음 코드는 제스처 엔진이 두 손가락 탭 명령을 처리하는 방법을 보여 줍니다.

// Two-finger tap command
void CMyGestureEngine::ProcessTwoFingerTap(void)
{
    if(_pcRect)
    {
        _pcRect->ToggleDrawDiagonals();
    }
}

다음 코드에서는 그리기 개체가 대각선을 전환하는 방법을 보여 줍니다.

void ToggleDrawDiagonals(void){_bDrawDiagonals = !_bDrawDiagonals;}

다음 코드에서는 개체가 그리기 메서드에서 대각선 렌더링 방법을 보여 줍니다.

    if(_bDrawDiagonals)
    {
        // draw diagonals
        MoveToEx(hdc,ptRect[0].x,ptRect[0].y,NULL);
        LineTo(hdc,ptRect[2].x,ptRect[2].y);
        MoveToEx(hdc,ptRect[1].x,ptRect[1].y,NULL);
        LineTo(hdc,ptRect[3].x,ptRect[3].y);
    }

멀티 터치 제스처 애플리케이션(C#), 멀티 터치 제스처 애플리케이션(C++), Windows 터치 샘플