Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція № 15.doc
Скачиваний:
0
Добавлен:
16.12.2018
Размер:
58.88 Кб
Скачать

Лекція № 15

Тема: Інтерфейс графічних пристроїв

План

  1. Введення в інтерфейс графічних пристроїв

  2. Пристрої GDI

  3. Контекст пристрою

  4. Повідомлення WM_PAINT

  5. Графічні координати

  6. Передача повідомлення WM_PAINT

Операційна система Windows володіє графічним інтерфейсом, тому всі створювані для неї застосування зобов'язані використовувати саме його. Графічний інтерфейс істотно простіший, зручніше і зрозуміліше для користувачів, чим текстовий. Інтерфейс графічних пристроїв Windows (GDIGraphic Device Interface) позбавляє програмістів від необхідності вивчення подробиць відображення діалогових вікон, промальовування їх елементів або створення кнопок. Але, програмування в графічному середовищі спричиняє за собою абсолютно інший набір проблем і питань, особливо якщо створюване застосування відображає дані у вигляді діаграм, графіків або схем.

Введення в інтерфейс графічних пристроїв

Інтерфейс графічних пристроїв (GDI) є невід'ємною частиною ядра операційної системи Windows, що контролюючої і забезпечує всі операції графічного виведення додатків Windows. Отже, незалежно від того, відображається на екрані вікно діалогового застосування або шикарна заставка хранителя екрану, або здійснюється роздрук додатком документа на принтері, у всіх цих операціях бере участь GDI.

При створенні меню, діалогових вікон і інших елементів управління само собою зрозуміло, що операційна система Windows сама здогадається звернутися до функцій GDI і промальовувати на екрані ці елементи інтерфейсу. GDI використовується навіть для відображення курсора миші при його переміщенні по екрану.

Але найчудовішою в GDI є його внутрішня архітектура. Корпорація Microsoft створила GDI, щоб відокремити графічні операції від фактично використовуваного устаткування і забезпечити таким чином певний рівень абстракції для графічних застосувань (таких, наприклад, як робочий стіл Windows). Для цього GDI володіє графічними функціями високого рівня, що забезпечують однакові результати виконання незалежно від використовуваного устаткування. Розмежування графічних функцій і апаратних засобів дозволяє здійснювати складні графічні операції при вельми незначних зусиллях з боку розробника, а також при мінімальному обліку особливостей апаратних засобів.

Пристрої gdi

Щоб вважатися пристроєм GDI, фізичний графічний пристрій (принтер або відеоадаптер наприклад) зовсім не зобов'язаний підтримувати всі три типи графіки. І в цьому вся краса GDI. Використовуючи встановлені драйвери пристроїв, інтерфейс GDI здатний адаптуватися до вживаних апаратних засобів і забезпечити прийнятний результат відображення графіки для найрізноманітніших апаратних засобів. Фактично, більшість пристроїв практично не мають вбудованої підтримки на рівні вище, ніж необхідно для інтерфейсу GDI3.

Єдиною вимогою, що пред'являється до пристроїв GDI, є здатність відображення крапок (пікселів). От і все. А для решти операцій, що виходять за рамки цієї дуже простій функції, інтерфейс GDI, проаналізувавши можливості конкретного пристрою, сформує простіші і зрозуміліші йому команди, в результаті виконання яких необхідне зображення буде відображено. Проте, щоб повідомити інтерфейс GDI про те, якими саме можливостями володіє даний пристрій, необхідний його драйвер. Драйвер пристрою передає інтерфейсу GDI відповідний набір бітів, що дозволяє останньому настроїтися для правильної взаємодії з пристроєм.

Для дуже простих пристроїв, можливості яких вельми обмежені, велику частину роботи інтерфейс GDI виконує самостійно. Інтерфейс GDI здатний внутрішньо, самостійно перетворити всі звернення до функцій векторної графіки і текст в растрові дані, які зможе зрозуміти фізичний пристрій. Не дивлячись на те, що растрова графіка вимагає більшого об'єму пам'яті, її застосування дозволяє відобразити навіть достатньо складні зображення на апаратних засобах, що володіють вельми посередніми возможностями4.

Якщо пристрій повідомляє про те, що воно володіє додатковими можливостями, то інтерфейс GDI буде позбавлений від необхідності виконання деяких дій. Якщо апаратний пристрій здатний самостійно виконувати запити на промальовування, то інтерфейс GDI передаватиме йому команди у вигляді відповідних запитів. Це приведе до підвищення загальної продуктивності по двох причинах. По-перше, функціям GDI доведеться виконувати менший об'єм робіт, а отже, менше навантажувати процесор. По-друге, високорівневі запити на промальовування займають меншу кількість оперативної пам'яті і дискового простору в порівнянні із загальною сумою низькорівневих складових, на які їх довелося б розкласти, а зменшення об'єму інформації, що зберігається, знижує навантаження і на систему в цілому, що приводить до підвищення загальної продуктивності.

Можливість взаємодії з щонайширшим діапазоном різних апаратних засобів є одній з причин, по якій графічний інтерфейс GDI називають незалежним від зовнішніх пристроїв. Якщо пристрій нездібний самостійно забезпечити відображення графічної інформації, інтерфейс GDI може піти йому назустріч і змоделювати відповідну послідовність запитів програмно. З іншого боку, якщо пристрій володіє вбудованою підтримкою запитів, то GDI перейде на передачу більш високорівневих запитів, що забезпечить підвищення продуктивності системи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]