Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 семестр, WinAPI, MFC.pdf
Скачиваний:
388
Добавлен:
15.06.2014
Размер:
6.17 Mб
Скачать

Использование привычных палитр обычно ограничено способностью дисплея показывать не более 256 цветов. Windows резервирует только 20 из этих цветов для использования системой. Можно изменять другие 236 цветов для точного отображения красок предметов реального мира как битовые образы. Для создания цветного битового образа используется функция CreateCompatibleBitmap, которая гарантирует, что формат будет совместим с реальным графическим устройством отображения.

Печать.

Обеспечение твердой копии вывода на принтер, плоттер и другие устройства вывода.

Вывод на устройства, обеспечивающие твердые копии, ничем не отличаются от вывода на дисплей. Стандартный набор функций GDI вызывается для контекста принтера.

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

Впечать вовлекаются несколько компонентов Windows:

Основной компонент – это спулер печати, который управляет процессом печати.

Процессор печати преобразует выгруженную работу печати в вызовы драйвера устройства.

Драйвер устройства генерирует неструктурированный вывод, который затем обрабатывается самим принтером.

Наконец, монитор порта передает неструктурированные команды устройства на физическое устройство через определенный порт или сетевое соединение.

Получение описателя контекста принтера:

hdc = CreateDC (NULL, printer, NULL, NULL) ;

! Существует набор специальных функций Win32 для работы печати, получающие информацию о задачах и о принтерах и управляющие процессом печати.

Контрольные вопросы

1.При помощи чего приложения могут рисовать на устройствах вывода?

2.Когда приложение может использовать функции BeginPaint и EndPaint?

3.Обязательно или нет передавать необрабатываемые сообщения WM_PAINT в функцию обработки сообщений по умолчанию? Что при этом происходит?

4.Как получить контекст устройства, если необходимо рисовать в рабочей области при обработке отличных от WM_PAINT сообщений?

5.Каким образом приложение может явно потребовать перерисовку всего окна или его части?

6.Что делает функция InvalidateRect?

7.Что является итогом выполнения функции UpdateWindow?

8.Какая функция является “противоположной” для функции InvalidateRect?

9.Что определяет контекст устройства?

10.В каких ситуациях приложение может не создавать контекст устройства вывода?

11.Что такое общий контекст? Как приложение может его получить?

12.Когда для общего контекста следует выполнять настройку атрибутов?

13.Для чего служит контекст класса окна?