MapWindowPoints 함수(winuser.h)

MapWindowPoints 함수는 한 창을 기준으로 한 좌표 공간에서 다른 창을 기준으로 좌표 공간으로 점 집합을 변환(매핑)합니다.

구문

int MapWindowPoints(
  [in]      HWND    hWndFrom,
  [in]      HWND    hWndTo,
  [in, out] LPPOINT lpPoints,
  [in]      UINT    cPoints
);

매개 변수

[in] hWndFrom

지점이 변환되는 창에 대한 핸들입니다. 이 매개 변수가 NULL 이거나 HWND_DESKTOP 점이 화면 좌표로 추정됩니다.

[in] hWndTo

지점이 변환되는 창에 대한 핸들입니다. 이 매개 변수가 NULL 이거나 HWND_DESKTOP 점이 화면 좌표로 변환됩니다.

[in, out] lpPoints

변환할 점 집합을 포함하는 POINT 구조체의 배열에 대한 포인터입니다. 지점은 디바이스 단위로 표시됩니다. 이 매개 변수는 RECT 구조를 가리킬 수도 있습니다. 이 경우 cPoints 매개 변수를 2로 설정해야 합니다.

[in] cPoints

lpPoints 매개 변수가 가리키는 배열의 POINT 구조체 수입니다.

반환 값

함수가 성공하면 반환 값의 하위 단어는 각 대상 지점의 가로 좌표를 계산하기 위해 각 원본 점의 가로 좌표에 추가된 픽셀 수입니다. 또한 hWndFromhWndTo 중 하나를 정확하게 미러링하면 결과 가로 좌표 각각에 -1을 곱합니다. 상위 단어는 각 대상 지점의 세로 좌표를 계산하기 위해 각 원본 지점의 세로 좌표에 추가된 픽셀 수입니다.

함수가 실패하면 반환 값은 0입니다. 이 메서드를 호출하기 전에 SetLastError 를 호출하여 오류 반환 값을 합법적인 "0" 반환 값과 구분합니다.

설명

hWndFrom 또는 hWndTo(또는 둘 다)가 미러된 창(즉, 확장 스타일이 WS_EX_LAYOUTRTL 있음)이고 정확히 두 점이 lpPoints에 전달되는 경우 MapWindowPoints는 이 두 점을 RECT로 해석하고 해당 사각형의 왼쪽 및 오른쪽 필드를 자동으로 교환하여 왼쪽이 오른쪽보다 크지 않도록 합니다. lpPoints에 2개 이외의 점이 전달되는 경우 MapWindowPoints는 각 점의 좌표를 개별적으로 올바르게 매핑하므로 lpPoint에서 둘 이상의 사각형 배열에 포인터를 전달하면 새 사각형이 왼쪽 필드를 오른쪽보다 크게 가져올 수 있습니다. 따라서 사각형 좌표의 올바른 변환을 보장하려면 다음 예제와 같이 한 번에 하나의 RECT 포인터를 사용하여 MapWindowPoints를 호출해야 합니다.


   RECT        rc[10];

   for(int i = 0; i < (sizeof(rc)/sizeof(rc[0])); i++)
   {
       MapWindowPoints(hWnd1, hWnd2, (LPPOINT)(&rc[i]), (sizeof(RECT)/sizeof(POINT)) );
   }

또한 두 개의 독립 지점을 정확하게 매핑해야 하고 MapWindowPoints에서 RECT 논리를 적용하지 않으려는 경우 다음 예제와 같이 한 번에 하나의 POINT 포인터를 사용하여 MapWindowPoints를 호출해야 합니다.


   POINT pt[2];

   MapWindowPoints(hWnd1, hWnd2, &pt[0], 1);
   MapWindowPoints(hWnd1, hWnd2, &pt[1], 1);

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-window-l1-1-2(Windows 10 버전 10.0.10240에 도입됨)

추가 정보

ClientToScreen

좌표 공간 및 변환 함수

좌표 공간 및 변환 개요

지점

RECT

ScreenToClient