none
윈7 노트북 터치패드의 API 제공 문의드려요 RRS feed

  • 질문

  • 윈7 노트북 터치패드에서 화면확대, 축소, 가로세로 스크롤같은 기능들을 구현하려고 합니다. 그리고 터치좌표를 임의로 컨트롤하고싶은데 이런API 를 제공하나요??
    2018년 5월 31일 목요일 오전 8:00

답변

  • 안녕하세요,

    다음 내용을 참고하여 주시기 바랍니다.

    제스처 정보 구조체에는 제스처 상태를 확인하는 데 사용되는dwFlags 멤버가 포함되며 다음과 같은 값이 포함될 수 있습니다.

    GF_BEGIN – 제스처가 시작된 것을 나타내며 첫 번째 WM_Gesture 메시지에서 수신됩니다.

    GF_INERTIA – 제스처가 관성을 트리거한 것을 나타냅니다.

    GF_END – 제스처가 완료된 것을 나타냅니다.

    스위치의 default – 제스처 메시지의 나머지 부분을 나타내며 일반적으로 델타라고 합니다.

    GF_BEGIN 플래그를 사용하여 터치 지점의 초기 시작 좌표를 다음 단계에 대한 참조로서 변수로 저장해 보겠습니다.

    ptsLocation _ptFirst 변수에 저장합니다. 확대/축소 제스처에서 ptsLocation은 확대/축소의 중심을 나타냅니다.

    수신되는 다음 확대/축소 메시지는 default 문에서 처리됩니다.

    좌표를 _ptSecond 변수에 저장하고 확대/축소 중심점과 확대/축소 비율을 계산한 다음 마지막으로 직사각형(그래픽 개체)을 업데이트하여 확대/축소 중심점과 확대/축소 비율을 반영합니다.

    예제

    case GID_ZOOM:

    switch(gi.dwFlags)

    {

    case GF_BEGIN:

        _dwArguments = LODWORD(gi.ullArguments);

        _ptFirst.x = gi.ptsLocation.x;

        _ptFirst.y = gi.ptsLocation.y;

        ScreenToClient(hWnd,&_ptFirst);

        break;

    default:

        // We read here the second point of the gesture. This is middle point between fingers.

        _ptSecond.x = gi.ptsLocation.x;

        _ptSecond.y = gi.ptsLocation.y;

        ScreenToClient(hWnd,&_ptSecond);

        // We have to calculate zoom center point

        ptZoomCenter.x = (_ptFirst.x + _ptSecond.x)/2;

        ptZoomCenter.y = (_ptFirst.y + _ptSecond.y)/2;          

       

        // The zoom factor is the ratio between the new and the old distance.

        k = (double)(LODWORD(gi.ullArguments))/(double)(_dwArguments);

        // Now we process zooming in/out of the object

        ProcessZoom(k,ptZoomCenter.x,ptZoomCenter.y);

        InvalidateRect(hWnd,NULL,TRUE);

        // Now we have to store new information as a starting information for the next step

        _ptFirst = _ptSecond;

        _dwArguments = LODWORD(gi.ullArguments);

        break;

    }

    break;

    default case 처리기에서 제스처의 위치를 저장하고 두 지점 집합(현재 터치 지점과 이전 터치 지점)에서 확대/축소 중심 위치를 계산하여 ptZoomCenter에 저장합니다.

    또한 두 지점 간 비율을 계산하여 확대/축소 비율을 계산합니다.

    ProcessZoom 도우미 함수를 호출하면 새 좌표가 업데이트되어 확대/축소 비율과 중심점이 반영됩니다.

    참고자료

    http://msdn.microsoft.com/ko-kr/magazine/ee336016.aspx#id0400006

    http://msdn.microsoft.com/ko-kr/library/dd894494(v=vs.95).aspx

    • 답변으로 표시됨 resla_12 2018년 5월 31일 목요일 오전 8:02
    2018년 5월 31일 목요일 오전 8:01
    중재자