- Контекст устройства
-
Контекст устройства (англ. Device Context) является основным инструментом, применяемым в Windows для обеспечения независимости приложений от устройств.
Определение
Понятие «Контекст устройства» является частью графической подсистемы Windows GDI.
Контекст устройства — это внутренняя структура, для управления информацией о выходном устройстве. Она содержит информацию о параметрах и атрибутах вывода графики на устройство (например, дисплей или принтер). Вместо направления вывода непосредственно на аппаратное устройство, приложение направляет его в контекст устройства, а затем Windows пересылает вывод в аппаратное устройство.
В GDI существуют пять типов контекста устройства — связанный с дисплеем (Display DC), принтером (Printer DC), контекст виртуального устройства в памяти (Memory DC), контекст метафайла (Metafile DC) и специальный вид контекста — информационный (Information DC).
Пример
Ниже приведён пример, показывающий этапы, необходимые для вывода строки в клиентскую область окна посредством обращения к контексту устройства:
HDC hDC;//Дескриптор контекста устройства. //Получить дескриптор контекста устройства клиентской области окна. hDC = GetDC( hWnd ); //выбрать указанный объект в контексте устройства(в данном случае - системный шрифт Windows) SelectObject( hDC, GetStockObject ( ANSI_VAR_FONT ) ); //изменить цвет текста(в данном случае на красный) SetTextColor ( hDC, RGB(255,0,0)); //Вывести строку текста в клиентскую область TextOut( hDC, 0, 0, "Text output to client area.", 27 ); //освободить контекст устройства ReleaseDC( hWnd, hDC );
Контекст устройства всегда содержит перо для рисования, кисть для закрашивания областей, шрифт для вывода символов и ряд других объектов.
Функции
Функции WinAPI для работы с контекстами устройства:
- CreateDC - создает контекст устpойства для устpойства DriverName.
- DeleteDC - удаляет контекст устpойства. Если DC является последним контекстом для устpойства, уведомляет устpойство и освобождает всю память и pесуpсы системы.
- GetDC - считывает контекст дисплея для выполнения опеpаций интеpфейса GDI в области пользователя окна.
- GetDCEx
- GetWindowDC - считывает контекст дисплея, обычно используемый для pаскpаски в окне областей, не являющихся областями пользователя.
- ReleaseDC - освобождает общий или оконный (не влияющий на класс или локальность) контекст устpойства, делая его доступным для дpугих пpикладных задач.
- RestoreDC - восстанавливает контекст устpойства в пpедыдущее состояние, указанное паpаметpом SaveDC, из стека контекста. Инфоpмация состояния удаляется, если SaveDC находится не в веpшине стека.
- SaveDC - сохpаняет текущее состояние DC в стеке контекста.
- WindowFromDC
Категория:- Windows API
Wikimedia Foundation. 2010.