Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Контекст графического устройства



Теоретическая часть.

В предыдущей лабораторной работе вы ознакомились с процессом построения настольных приложений с графическим интерфейсом пользователя на основе System.Windows.Forms. В процессе выполнения этой лабораторной работы мы изучим уже детали визуализации простых графических объектов на поверхности Form. Для этого мы начнем с описания контекста графического устройства и общего обзора многочисленных пространств имен, связанных с рисованием, рассмотрим роль события Paint и могущественного объекта Graphics.

Контекст графического устройства

Часто для создаваемых приложений пользователю необходимо создавать свой собственный интерфейс. Например, ему нужно нарисовать текст заданным шрифтом и в строго определенном месте, или необходимо вывести на экран нужное изображение или просто нарисовать простые графические формы и другую графику.

Обычно программные тексты для рисования на экране довольно просты и основаны на использовании технологии, известной под названием GDI +. Эта технология состоит из множества. NET классов, предназначенных для осуществления процесса рисования на экране. Эти классы обеспечивают множество операций, напрямую взаимодействующих с драйверами устройств, гарантирующих корректный вывод в нужное место на экран монитора или устройство печати. Точно также как и. NET классы, GDI + классы располагают интуитивно понятными и простыми в использовании объектными моделями. Несмотря на сложность GDI + объектной модели, пользователю все же требуется хорошее понимание происходящих внутри них процессов.

1.1.1. Основные принципы рисования. GDI и GDI+.

В действительности, преимущество Windows как современной операционной системы (ОС) заключается в способности разработчика абстрагироваться от деталей и особенностей конкретных устройств. Например, не требуется понимание того, что происходит в драйвере вашего диска при чтении или записи информации в файл. Достаточно просто вызвать соответствующие методы соответствующего. NET класса или эквивалентные им Windows API функции. Этот принцип справедлив и при рисовании. Когда компьютер что-то рисует на экране, то он делает это путем посылки инструкций в видеокарту, сообщая ей что нужно нарисовать и где. Проблема состоит только в том, что существуют сотни различных типов видеокарт, многие из которых созданы разными производителями и имеют разные системы команд и функциональных возможностей. Учитывая это, практически становиться невозможным написать одну программу для всех видеодрайверов, которые что-то рисовали бы на экране. Именно по этой причине самые ранние версии Windows неизбежно включали в свой состав Интерфейс Графических Устройств (Windows Graphical Device Interface (GDI)).

Когда, при выполнении определенной задачи, происходит вызов Windows API функции, то GDI скрывает различие между разными видеокартами. Это позволяет пользователю одинаковым образом взаимодействовать с видеокартами разных типов. Но GDI также делает еще и нечто другое. Дело в том, что современные компьютеры располагают более одного устройства, на которые можно выводить графическую информацию. Естественно, что это монитор (дисплей) к которому осуществляется доступ через видеокарту и принтер. Некоторые компьютеры имеют несколько установленных видеокарт или могут иметь несколько принтеров. GDI делает для вашего приложения принтер таким же устройством, как и экран дисплея. Если вместо вывода на экран нужно что то распечатать, то достаточно просто информировать систему о том, что требуется вывести информацию не на экран, а на принтер и вызвать соответствующую API функцию. Таким образом, GDI абстрагируется от характеристик электронного устройства, предоставляя их на более высоком уровне API.

Однако, несмотря на это, Windows API, разработанная на языке Си не позволяет использовать эти достаточно простыми способами, как этого хотелось бы. Для устранения этого недостатка был введен механизм GDI +, который можно рассматривать как некоторую прослойку между GDI и приложением и, тем самым, обеспечивая наличие более интуитивно понятной объектно-ориентированной модели. Несмотря на то, что GDI + представляется в виде "обертки" вокруг GDI, но фирме Microsoft это позволило обеспечить новые характеристики и возможности.





Дата публикования: 2015-11-01; Прочитано: 355 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...