Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Windows предоставляет различные средства рисования для использования в контекстах устройств. Он предоставляет ручки для рисования линий, кистей для заполнения интерьеров и шрифтов для рисования текста. MFC предоставляет классы графических объектов, эквивалентные инструментам рисования в Windows. В таблице ниже показаны доступные классы и эквивалентные типы дескрипторов графического устройства Windows (GDI).
Замечание
Дополнительные сведения см. в документации по пакету SDK GDI+.
В этой статье объясняется использование этих классов графических объектов:
Классы для объектов GDI Windows
| Класс | Тип дескриптора 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;
Создание графического объекта в контексте устройства
Определите графический объект в кадре стека. Инициализируйте объект с помощью функции создания конкретного типа, такой как
CreatePen. В качестве альтернативы, инициализируйте объект в конструкторе. См. обсуждение одноэтапного и двухэтапного создания, в котором приведен пример кода.Выберите объект в текущем контексте устройства, сохранив старый графический объект, который был выбран ранее.
После завершения работы с текущим графическим объектом выберите старый графический объект обратно в контекст устройства, чтобы восстановить его состояние.
Позволить автоматически удалять графический объект, выделенный в кадре, при выходе из области действия.
Замечание
Если вы будете использовать графический объект неоднократно, вы можете выделить его один раз и выбирать его в контекст устройства каждый раз, когда это необходимо. Не забудьте удалить такой объект, если он больше не нужен.