Визуальное программирование и MFC



         

Объекты GDI


При рисовании фигур в Visual C++ используются специальные объекты GDI, т.е. объекты интерфейса графического устройства (GDI - Graphics Device Interface) системы Windows.

Название

Класс

Тип определителя в Windows

Перо

CPen

HPEN

Кисть

CBrush

HBRUSH

Шрифт

CFont

HFONT

Растровое изображение

CBitmap

HBITMAP

Палитра

CPalette

HPALETTE

Область (регион)

CRgn

HRGN

Как и любые другие объекты в Visual C++, они должны быть созданы соответствующим образом. Создание объекта должно включать в себя и связывание с соответствующим объектом системы Windows. Эта операция осуществляется методом, имя которого начинается с префикса Create. Он может быть выполнен как после создания объекта Visual C++, так и в конструкторе объекта:

CPen Pen1; Pen1.CreatePen(PS_DOT, 5, RGB(0,0,0)); // вариант 1 CPen Pen2(PS_DOT, 5, RGB(0,0,0)); // вариант2

При завершении работы с объектом GDI необходимо обеспечить (вернее, не нарушать) его автоматическое удаление при выходе из соответствующей области видимости.

Перо - объект для рисования линий. При создании пера можно задать его ширину, цвет и тип линии. Для создания пера используются метод CreatePen.

Кисть представляет собой растровое изображение размером 8х8 пикселей для заполнения различных областей. Различают два варианта понятия кисти: логическая и физическая. Объект GDI задает логическую кисть, которая определяет полный набор свойств: цвет, стиль и т.п., - указываемых при ее создании. Возможно, не все эти свойства могут быть реализованы на данном компьютере. Свойства физической кисти реально воспроизводятся физическими устройствами. Они являются наиболее близким реализуемым приближением к свойствам логической кисти.

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

  • Для создания сплошной кисти, все пиксели которой одного цвета, используется метод CreateSolidBrush.
  • Стандартные кисти уже имеются в операционной системе (таких кистей 7). Чтобы их создать, используется метод CreateStockBrush. Этот метод на самом деле создает только объект класса CBrush.


    Содержание  Назад  Вперед