Система координат
В программах MS-DOS для вывода текста вы использовали окно, состоящее из 25 строк по 80 символов в каждой. Начало соответствующей системы координат располагалось в верхнем левом углу экрана. Ось X была направлена слева направо, а ось Y - сверху вниз.
Для рисования графических изображений программа MS-DOS переключала видеоадаптер в один из графических режимов, например, в режим VGA с разрешением 640 х 480 пикселов. Если нужно было выводить текст в графическом режиме, для каждого видеорежима приходилось использовать отдельный набор шрифтов.
Presentation Manager предоставляет в ваше распряжение так называемую логическую систему координат, параметры которой при необходимости можно изменять.
По умолчанию в пространстве отображения используется прямоугольная система координат с началом, расположенным в левом нижнем углу окна. Ось X направлена слева направо, ось Y - снизу вверх.
Что же касается размеров окна, то они могут изменяться пользователем. При этом функция окна получает сообщение WM_SIZE , параметры которого отражают старые и новые размеры окна. Это сообщение передается и при создании окна.
Новые размеры окна Client Window , которые мы будем обозначать cxClient и cyClient, передаются через малдшее и старшее слово парметра mp2, соответственно. Вы можете определить размеры окна следующим образом:
case WM_SIZE : { cxClient = SHORT1FROMMP (mp2); cyClient = SHORT2FROMMP (mp2); return 0; }
Другой способ определения размеров окна основан на вызове функции WinQueryWindow Rect, прототип которой приведен ниже:
BOOL WinQueryWindow Rect( HWND hwnd, // идентификатор окна PRECTL prclDest); // указатель на структуру RECTL
Эта функция запишет размеры окна, идентификатор которого передается через параметр hwnd, в структуру типа RECTL с адресом prclDest. При успешном завершении функция возвращает значение TRUE, при ошибке (например, если был задан неправильный идентификатор окна) - значение FALSE.
Ваше приложение не может ориентироваться на какие-либо конкретные размеры окна, так как пользователю удобно изменять эти размеры по своему усмотрению.
В отдельной главе одной из следующих книг "Библиотеки системного программиста", посвященной графическому интерфейсу, мы расскажем о том, как выбрать в пространство отображения другую систему координат, изменив, например, расположение начала координат, направление осей или масштаб по координатным осям.