Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
589.31 Кб
Скачать

8

Средства работы с графикой

Классы поддержки графического вывода

Рисование и контекст устройства

Будем называть графическим устройством такие устройства, как монитор, принтер, плоттер. Любое графическое устройство в Windows, на которое можно осуществлять вывод, является аппг.ратно независимым. Это означает, что программирование вывода и на принтер и на монитор выполняется не напрямую, а с использованием функций API.

В Visual C++ методы, обеспечивающие вывод на экран дисплея и на принтер, используют контекст устройства. Контекст устройства является объектом класса CDC. Этот класс инкапсулирует методы построения изображений. При создании объекта данного класса в него заносится вся информация о графическом устройстве вывода (атрибуты контекста устройства).

Указатель на контекст устройства передается как параметр при обработке метода OnDraw. Для того чтобы использовать контекст устройства, например для отображения в окне геометрической фигуры, при вызове метода OnDraw можно использовать следующий код:

// Выполняется при получении сообщения объектом класса CFromView void CFromView::OnDraw(CDC * pCDC) // Переопределение метода OnDraw {pCDC->TextOut(300,150, "текст",5);} // Вывод строки текста

Экран дисплея рассматривается в Windows как три графических устройства, для каждого из которых можно создать и использовать свой контекст устройства. Этими устройствами являются:

• весь экран,

• Windows-окно,

• клиентская область окна.

Вывод на графическое устройство выполняется в логической системе координат, определяемой контекстом устройства. Также контекст устройства содержит атрибуты, определяющие соответствие логических координат точки ее физическим координатам.

Для создания графических изображений Visual C++ предоставляет набор объектов графического интерфейса пользователей (объекты GDI).

Алгоритм применения этих объектов аналогичен работе с оконными объектами: первоначально надо создать объект GDI, а затем пристыковать его к соответствующему Windows-объекту.

Библиотека MFC содержит следующие классы, инкапсулирующие работу с объектами графического интерфейса пользователей:

Среn (перо),

• С Brush (кисть),

CFont (шрифт),

• CBitmap (растровое изображение),

CPalette (палитра),

CRgn (область).

Класс CDC

Класс CDC является базовым классом контекста устройства.

Этот класс предоставляет набор методов, обеспечивающих работу с инструментами для рисования, поддержку соответствия между логическими и физическими координатами; содержит ряд атрибутов контекста устройства и методы, управляющие ими.

Для того чтобы использовать контекст устройства, следует создать объект CDC.

Библиотека MFC содержит следующие производные классы от CDC:

CPaintDC - инкапсулирует вызовы BeginPaint и EndPaint;

CClientDC - управляет контекстом экрана дисплея, связанного с клиентской областью окна;

CWindowDC - управляет контекстом экрана дисплея, связанного со всем окном, включающим как клиентскую, так и системную область;

CMetaFileDC - связывает контекст устройства с метафайлом.

Класс CDC содержит два контекста устройстав: m_hDC и m_hAttribDC.

Соседние файлы в папке VC++Баженова