- •Средства работы с графикой
- •Методы класса cdc
- •Int AbortDoc();
- •Void DrawFocusRect( lpcrect IpRect);
- •IpBuffer - указатель на буфер, в который заносится ширина всех символов указанной последовательности.
- •Int GetMapMode( ) const;
- •CPen - hpen, cBrush -hbrush, cFont - hfont, cBitmap- hbitmap, cPalette- hpalette, cRgn - hrgn.
- •Throw( cResourceException );
- •Int CombineRgn( cRgn* pRgnl, cRgn* pRgn2, int nCombineMode );
- •Int CopyRgn( cRgn* pRgnSrc );
- •Int GetBitmap( bitmap* pBitMap );
- •Методы класса cFont
- •IpszFaceName - объект cString или указатель на строку, содержащую имя
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.