Что такое device context

Отображение контекстов устройств

Для отображения видео доступно пять типов контроллеров домена:

Контексты устройств класса

Контексты устройств класса поддерживаются исключительно для совместимости с 16-разрядными версиями Windows. При написании приложения Избегайте использования контекста устройства класса; Вместо этого используйте частный контекст устройства.

Общие контексты устройств

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

Так как существует только ограниченное количество общих контекстов устройств, приложение должно освободить их после завершения рисования. Когда приложение освобождает общий контекст устройства, все изменения данных по умолчанию теряются.

Частные контексты устройств

Частные контексты устройств отображают контроллеры домена, которые, в отличие от общих контекстов устройств, передают все изменения в данные по умолчанию даже после их освобождения приложением. Частные контексты устройств используются в приложениях, выполняющих многочисленные операции рисования, такие как приложения для автоматизированного проектирования (САПР), приложения для публикации настольных систем, приложения для рисования и рисования и т. д. Частные контексты устройств не являются частью системного кэша и поэтому не должны освобождаться после использования. Система автоматически удаляет частный контекст устройства после уничтожения последнего окна этого класса.

После создания окна с использованием стиля CS _ овндк приложение может вызвать функцию GetDC, жетдцексили бегинпаинт один раз для получения маркера, определяющего частный контекст устройства. Приложение может продолжать использовать этот обработчик (и связанный с ним контроллер домена) до тех пор, пока не будет удалено окно, созданное с помощью этого класса. Любые изменения графических объектов и их атрибутов, а также графические режимы сохраняются системой до тех пор, пока окно не будет удалено.

Контексты устройств окна

Контекст устройства Window позволяет приложению рисовать в любом месте окна, включая неклиентскую область. Контексты устройств окон обычно используются приложениями, которые обрабатывают сообщения WM _ нкпаинт и WM _ нкактивате для Windows с пользовательскими неклиентским областями. Использование контекста устройства Window не рекомендуется для других целей. Для получения дополнительных сведений; см. жетвиндовдк.

Контексты родительского устройства

Контекст родительского устройства позволяет приложению максимально сокращать время, необходимое для настройки области отсечения для окна. В приложении обычно используются родительские контексты устройств для ускорения рисования окон элементов управления без необходимости использовать частный контекст или контекста устройства класса. Например, система использует родительские контексты устройств для кнопок «Отправить» и «Изменить». Контексты родительских устройств предназначены для использования только с дочерними окнами, но никогда не с окнами верхнего уровня или всплывающих окон. Для получения дополнительных сведений; см. раздел контексты отображаемого родительского устройства.

Источник

Контекст устройства

Контекст устройства (англ. Device Context ) является основным инструментом, применяемым в Windows для обеспечения независимости приложений от устройств.

Определение

Понятие «Контекст устройства» является частью графической подсистемы Windows GDI.

Контекст устройства — это внутренняя структура, для управления информацией о выходном устройстве. Она содержит информацию о параметрах и атрибутах вывода графики на устройство (например, дисплей или принтер). Вместо направления вывода непосредственно на аппаратное устройство, приложение направляет его в контекст устройства, а затем Windows пересылает вывод в аппаратное устройство.

В GDI существуют пять типов контекста устройства — связанный с дисплеем (Display DC), принтером (Printer DC), контекст виртуального устройства в памяти (Memory DC), контекст метафайла (Metafile DC) и специальный вид контекста — информационный (Information DC).

Пример

Ниже приведён пример, показывающий этапы, необходимые для вывода строки в клиентскую область окна посредством обращения к контексту устройства:

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

Функции

Функции WinAPI для работы с контекстами устройства:

Полезное

Смотреть что такое «Контекст устройства» в других словарях:

контекст устройства — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN device context … Справочник технического переводчика

информационный контекст — Информационная составляющая контекста устройства. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN information context … Справочник технического переводчика

GDI — У этого термина существуют и другие значения, см. GDI (значения). GDI (Graphics Device Interface, Graphical Device Interface) один из трёх основных компонентов или «подсистем», вместе с ядром и Windows API составляющих пользовательский… … Википедия

Контекстно-зависимые вычисления — (англ. Context aware computing) изучают контекстно зависимые системы (комбинация аппаратного и программного обеспечения), которые анализируют состояние пользователя и окружающую среду, и адаптируют свою работу под изменяющиеся условия.… … Википедия

область — 3.1 область (area): Трехмерная область или пространство. Источник … Словарь-справочник терминов нормативно-технической документации

ПОЛИТИКА — (греч. гос. или обществ. дела, от государство), сфера деятельности, связанная с отношениями между классами, нациями и др. социальными группами, ядром которой является проблема завоевания, удержания и использования гос. власти. Самое… … Философская энциклопедия

Б41 — У этого термина существуют и другие значения, см. Б41 (значения). Б41 (англ. B41) российский 16 разрядный микроконтроллер, разработанный зеленоградской фирмой Kedah Electronics Engineering в 2004 году. Содержание 1 Общие сведения … Википедия

Технические — 19. Технические указания по технологии производства строительных и монтажных работ при электрификации железных дорог (устройства электроснабжения). М.: Оргтрансстрой, 1966. Источник: ВСН 13 77: Инструкция по монтажу контактных сетей промышленного … Словарь-справочник терминов нормативно-технической документации

1: — Терминология 1: : dw Номер дня недели. «1» соответствует понедельнику Определения термина из разных документов: dw DUT Разность между московским и всемирным координированным временем, выраженная целым количеством часов Определения термина из… … Словарь-справочник терминов нормативно-технической документации

ПАТРИСТИКА — (лат. patres отцы) направление философско теологической мысли 2 8 вв., связанное с деятельностью раннехристианских авторов Отцов Церкви. Семантико аксиологические источники оформления П. античная философия (общерациональный метод и конкретное… … История Философии: Энциклопедия

Источник

Контекст устройства отображения

В многозадачной операционной системе семейства Windows отсутствует возможность прямого бесконтрольного вывода на экран (как это было во времена MSDOS), тут все подчинено некоему регламенту. С целью обеспечения возможности вывода на устройство (экран, принтер, память) одновременно от множества источников (приложений), в Windows был создан специализированный механизм под названием контекст устройства (device context, DC ) и подмножество обеспечивающих его работу функций. Указанные функции определяют размер клиентской области, шрифт, цвета и другие GDI-атрибуты и возвращают (предоставляют) приложению так называемый дескриптор контекста устройства (Device Context Descriptor). Поскольку контекст устройства является одним из основополагающих понятий в понимании механизмов вывода информации на устройство, я постараюсь дать некоторое количество определений для погружения в тему:

В операционной системе Windows существует несколько типов контекстов устройства, а именно:

Нас же в рамках данной статьи интересует контекст устройства отображения:

Существует несколько типов контекста отображения:

Соответственно, методы получения (освобождения) контекста отображения различны для контекстов описанных типов. И где же он непосредственно используется? В процессе изучения функционала GDI становится очевидным, что во многих WinAPI-функциях вывода графических примитивов в Windows одним из входных параметров является указатель на контекст устройства отображения.

Дескриптор (описатель) контекста отображения, возвращаемый функциями WinAPI, это своеобразный указатель, предоставляемый системой пользовательскому уровню приложения, посредством которого приложение получает доступ к устройству вывода (например, экран).

Что такое device context. Смотреть фото Что такое device context. Смотреть картинку Что такое device context. Картинка про Что такое device context. Фото Что такое device context

Каждое приложение в случае необходимости экранного вывода получает в свое распоряжение собственный (уникальный) контекст и осуществляет посредством него вывод изображения. Поэтому, более интуитивно дескриптор контекста устройства отображения воспринимается в качестве указателя на некую системную структуру в памяти ядра, через которую система выводит данные на физическое устройство отображения.

Структура контекста устройства

Надо учитывать, что контекст устройства является структурой, состоящей, в свою очередь, из описателей объектов графических примитивов (характеристик), используемых при работе с контекстом:

Обычно данная структура содержит значения по умолчанию, определенные разработчиками из Microsoft.

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

Помимо связывания функций вывода WinAPI с конкретным устройством, контекст устройства решает проблему чрезмерной нагрузки на систему при интенсивном вызове GDI-функций. Ведь если разобраться, то становится очевидным, что параметры в контексте устройства присутствуют для снижения нагрузки на подсистемы ядра от необходимости постоянной передачи одних и тех же атрибутов при каждом вызове GDI-функций.

Любой контекст устройства должен ассоциироваться с каким-либо аппаратным устройством (видеоадаптер, принтер, память). Например, для случая вывода текста в окно приложения, контекст устройства отображения для пользовательского приложения ассоциируется с областью окна приложения (не со всем экраном) и видеоадаптером/монитором.

Сопряжение логического изображения с определенным видеоадаптером осуществляется уже на уровне ядра операционной системы на основе установленных в системе драйверов видеоадаптера. Контекст устройства дополнительно решает еще и задачу абстракции (независимости) от конкретной аппаратной архитектуры, позволяющей приложению записывать данные в аппаратное устройство, абсолютно не заботясь о том, правильно или неправильно будет представлена информация на огромном количестве существующих или перспективных аппаратных устройств, имеющих свою специфику. Таким образом обеспечивается идентичность изображения на всех конфигурациях, на которых работает операционная система Windows.

Источник

Контексты дисплея окна

Контекст устройства Window позволяет приложению рисовать в любом месте окна, включая неклиентскую область. Контексты устройств окон обычно используются приложениями, которые обрабатывают сообщения WM _ нкпаинт и WM _ нкактивате для Windows с пользовательскими неклиентским областями. Использование контекста устройства Window не рекомендуется для других целей.

Приложение может получить контекст устройства окна с помощью функции жетвиндовдк или жетдцекс с _ указанным параметром окна дккс. Функция получает контекст устройства окна из кэша контекста устройства вывода. Окно, использующее контекст устройства Window, должно освободить его после рисования, используя функцию релеаседк как можно скорее. Контексты устройств окон всегда находятся в кэше; _стили классов CS овндк и CS _ классдк не влияют на контекст устройства.

Когда приложение получает контекст устройства окна, система устанавливает источник устройства в верхний левый угол окна, а не в верхний левый угол клиентской области. В нем также задается область обрезки, включающая все окно, а не только клиентскую область. Система устанавливает для текущих значений атрибутов контекста устройства окна те же значения по умолчанию, что и общий контекст устройства. Приложение может изменять значения атрибутов, но при освобождении контекста устройства система не сохраняет никаких изменений.

Источник

Контексты устройств

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

Объекты кклиентдк инкапсулируют работу с контекстом устройства, представляющим только клиентскую область окна. CClientDC Конструктор вызывает GetDC функцию, и деструктор вызывает ReleaseDC функцию. Объекты квиндовдк инкапсулируют контекст устройства, представляющий все окно, включая его фрейм.

кметафиледк объекты инкапсулируют рисунок в метафайл Windows. В отличие от CPaintDC переданного OnDraw метода, необходимо в этом случае вызвать CPaintDC самостоятельно.

Рисование мыши

Большинство операций рисования в программе платформы, и, таким, в большинстве случаев работы с контекстом устройства, выполняются в OnDraw функции-члене представления. Тем не менее вы по-прежнему можете использовать объекты контекста устройства для других целей. Например, чтобы обеспечить обратную отправку для отслеживания перемещения мыши в представлении, необходимо нарисовать непосредственно в представлении, не дожидаясь OnDraw вызова.

В этом случае можно использовать объект контекста устройства кклиентдк для рисования непосредственно в представлении.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *