Программирование для IBM OS/2© Александр Фролов, Григорий ФроловТом 25, М.: Диалог-МИФИ, 1993, 286 стр. 4.3. Система координатВ программах 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. Ваше приложение не может ориентироваться на какие-либо конкретные размеры окна, так как пользователю удобно изменять эти размеры по своему усмотрению. В отдельной главе одной из следующих книг "Библиотеки системного программиста", посвященной графическому интерфейсу, мы расскажем о том, как выбрать в пространство отображения другую систему координат, изменив, например, расположение начала координат, направление осей или масштаб по координатным осям. |