Функция MapWindowPoints преобразует (отображает) ряд точек относительно координатного пространства одного окна относительно координатного пространства другого окна.
Синтаксис
int MapWindowPoints( HWND hWndFrom, // дескриптор исходного окна HWND hWndTo, // дескриптор предназначенного окна LPPOINT lpPoints, // массив отображаемых точек UINT cPoints // число точек в массиве ); |
hWndFrom
[in] Дескриптор окна из которого преобразуются точки. Если этот параметр - НУЛЬ (NULL) или HWND_DESKTOP, то предполагается, что точки, находятся в экранных координатах.
hWndTo
[in] Дескриптор окна, в котором преобразуются точки. Если этот параметр - НУЛЬ (NULL) или HWND_DESKTOP, точки преобразуются в экранных координатах.
lpPoints
[in/out] Указатель на массив структур POINT, которые содержат набор преобразуемых точек. Координаты точек измеряются в единицах устройства. Этот параметр может также указать на структуру RECT, когда параметр cPoints должен быть установлен в 2.
cPoints
[in] Определяет, что число структур POINT в массиве, указанное при помощи параметра lpPoints.
Если функция завершается успешно, младшее слово возвращаемого значения - число пикселей, добавленное к горизонтальной координате каждой исходной точки, чтобы вычислить горизонтальную координату каждой целевой точки; старшее слово - число пикселей, добавленное к вертикальной координате каждой исходной точки, чтобы вычислить вертикальную координату каждой целевой точки.
Если функция завершается ошибкой, возвращаемое значение - нуль.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Если параметры hWndFrom или hWndTo (или оба) представляют зеркалированные окна (то есть, имеющие расширенный стиль WS_EX_LAYOUTRTL), то функция MapWindowPoints автоматически настраивает зеркалируемые координаты, если Вы пересылаете две или меньше точки в lpPoints. Если Вы перешлете больше, а не две точки, то, хотя функция и не завершаться ошибкой, но возвратит неправильные позиции. Таким образом, чтобы гарантировать правильное преобразование координат прямоугольника, Вы должны вызвать функцию MapWindowPoints с двумя или меньше точками одновременно, как показано в нижеследующем примере:
|
Смотри также
Обзор Координатные пространства и преобразования, Функции, используемые координатными пространствами и преобразованиями, ClientToScreen, POINT, RECT, ScreenToClient
|
Размещение и совместимость MapWindowPoints |
||
| К | Windows XP | Да |
| л | Windows 2000 Professional | Да |
| и | Windows NT Workstation | Да версии 3.1 и старше |
| е | Windows Me | Да |
| н | Windows 98 | Да |
| т | Windows 95 | Да |
| С | Windows Server 2003 | Да |
| е | Windows 2000 Server | Да |
| р | Windows NT Server | Да |
| в | ||
| е | ||
| р | ||
| Используемая библиотека | User32.lib | |
| Используемая DLL | - | |
| Заголовочный файл | ||
| - объявлено в | Winuser.h | |
| - включено в | Windows.h | |
| Unicode | Нет | |
| Замечания по платформе | Не имеется | |