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

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

Объекты CPaintDC инкапсулируют общие идиомы Windows, вызывая BeginPaint функцию, а затем рисуя в контексте устройства, а затем вызывая функцию EndPaint . CPaintDC Конструктор вызывает BeginPaint вас и вызовы EndPaintдеструктора. Упрощенный процесс заключается в создании объекта CDC , рисования и последующего CDC уничтожения объекта. В платформе большая часть даже этого процесса автоматизирована. В частности, ваша OnDraw функция передается уже подготовленной CPaintDC (через OnPrepareDC), и вы просто тянете в нее. Он уничтожается платформой, и базовый контекст устройства освобождается в Windows после возвращения из вызова функции OnDraw .

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

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

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

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

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

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

См. также

Объекты окон