русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Режим MM_TEXT


Дата добавления: 2013-12-23; просмотров: 1351; Нарушение авторских прав


Системы координат

Рассмотрим различные системы координат, которые Windows использует для дисплея. Кроме системы, связанной с рабочей областью окна, Windows использует две другие системы для устройств отображения. Во всех системах координат устройств отображения координаты представляются в пикселах. Ось x системы координат направлена вправо, y – вниз.

Когда мы используем весь экран дисплея, мы работаем в т.н. «экранных координатах». При этом начало координат находится в верхнем левом углу экрана. Экранные координаты используются в сообщении WM_MOVE, а также в следующих функциях: CreateWindow, MoveWindow, GetCursorPos, SetCursorPos, GetWindowRect, WindowFromPoint. Если используется функция CreateDC для получения контекста устройства всего экрана дисплея, то при использовании GDI функций логические координаты переводятся Windows в экранные координаты.

Остальные две системы координат связаны не со всем экраном дисплея, а с конкретным окном.

Вторая система координат называется «оконная система координат». Ее начало координат находится в левом верхнем углу рамки окна. Данная система координат описывает все окно, включая меню, полосы просмотра и заголовок. Для использования оконной системы координат надо получать контекст устройства, вызывая функцию GetWindowDC. При этом GDI функции, использующие данный контекст, преобразуют логические координаты в экранные.

И наконец, третья система координат связана с рабочей областью окна. Начало координат данной системы находится в левом верхнем углу рабочей области окна. Когда вы получаете контекст устройства при помощи функций GetDC и BeginPaint, то логические координаты, используемые функциями GDI, транслируются Windows в координаты рабочей области окна.

Первый атрибут контекста устройства называется «режим отображения» и определяет, как логические координаты используемые GDI функциями, преобразуются в физические координаты устройства отображения. При этом система координат устройства отображения может быть экранной, оконной или системой координат рабочей области окна.



Физические координаты устройства отображения имеют в качестве единицы измерения пиксел, а логическая система координат может использовать как единицу измерения и пикселы, и миллиметры, и дюймы.

 

В данном (текстовом) режиме работы оси координат направлены соответственно: x – вправо, а y – вниз. Изначально центр системы координат находится в левом верхнем углу (экрана, окна или рабочей области окна в зависимости от того, как получен контекст устройства):

 
 

 

 


Рис. Режим отображения MM_TEXT

При помощи функций SetViewOrgEx и SetWindowOrgEx можно сместить начало координат в любую точку экрана.

Например, пусть нам необходимо поместить точку с логическими координатами x=0; y=0 в центр рабочей области окна, то мы можем использовать функцию SetViewportOrg:

SetViewportOrgEx (hDC, // Контекст устройства

xClient/2, // Ширина рабочей области окна в пикселах

yClient/2 // Высота рабочей области окна в пикселах

NULL);

 

Система координат будет иметь следующий вид:

 
 

 


-Y

 

-X +X

+Y

 

 

Рис. Начало координат смещено в центр экрана

Теперь функции, использующие логические координаты, будут считать началом координат центр экрана.

Можно воспользоваться для изменения начала координат также функцией SetWindowOrgEx();

 

SetWindowOrgEx (hDC, // Контекст устройства

xClient/2 // Половина ширины рабочей области

// в логических единицах

yClient/2 // Половина высоты рабочей области

// в логических единицах

NULL);

Разница заключается в том, что в функции SetViewportOrgEx параметры задаются в единицах физического устройства, а в SetWindowOrgEx в логических единицах.

 



<== предыдущая лекция | следующая лекция ==>
Режимы отображения | Режим MM_ISOTROPIC


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.