Графические объекты

Windows предоставляет широкий набор инструментов рисования для использования в контексте устройств. В их числе перья для рисования линий, кисти для заливки фигур и шрифты для текста. MFC предоставляет классы графических объектов, эквивалентные инструментам рисования в Windows. В таблице ниже показаны доступные классы и эквивалентные типы дескрипторов интерфейса графических устройств (GDI).

Примечание.

Дополнительные сведения см. в документации по пакету SDK GDI+.

В этой статье описывается использование классов графических объектов:

Классы для объектов Windows GDI

Класс Тип дескриптора Windows
CPen HPEN
Cbrush HBRUSH
CFont HFONT
CBitmap HBITMAP
CPalette HPALETTE
Crgn HRGN

Примечание.

Класс CImage обеспечивает расширенную поддержку растровых карт.

У каждого класса графического объекта в библиотеке есть конструктор, позволяющий создавать графические объекты этого класса, которые необходимо затем инициализировать с помощью соответствующей функции создания, такой как CreatePen.

У каждого класса графического объекта в библиотеке есть оператор приведения, который преобразует объект MFC в связанный дескриптор Windows. Полученный дескриптор допустим, пока связанный объект не отсоединит его. Используйте функцию-член объекта Detach для отсоединения дескриптора.

Следующий пример кода преобразует объект CPen в дескриптор Windows:

CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255, 255, 0));
HPEN hMyPen = (HPEN)myPen;

Создание графического объекта в контексте устройства

  1. Определите графический объект в кадре стека. Инициализируйте объект с помощью функции создания определенного типа, такой как CreatePen. Или же инициализируйте объект в конструкторе. См. обсуждение одноэтапного и двухэтапного создания, в котором приведен пример кода.

  2. Выберите объект в текущем контексте устройства, сохранив старый графический объект, который был выбран ранее.

  3. Завершив работу с текущим графическим объектом, выберите старый объект в контексте устройства, чтобы восстановить его состояние.

  4. Разрешите автоматическое удаление выделенного в кадре графического объекта при выходе из области.

Примечание.

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

Что вы хотите узнать больше о

См. также

Объекты окон