Поделиться через


Структура ATL_DRAWINFO

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

Синтаксис

struct ATL_DRAWINFO {
    UINT cbSize;
    DWORD dwDrawAspect;
    LONG lindex;
    DVTARGETDEVICE* ptd;
    HDC hicTargetDev;
    HDC hdcDraw;
    LPCRECTL prcBounds;
    LPCRECTL prcWBounds;
    BOOL bOptimize;
    BOOL bZoomed;
    BOOL bRectInHimetric;
    SIZEL ZoomNum;
    SIZEL ZoomDen;
};

Участники

cbSize
Размер структуры в байтах.

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

lindex
Часть целевого объекта, интересующего операцию рисования. Его интерпретация зависит от значения элемента dwDrawAspect .

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

hicTargetDev
Контекст информации для целевого устройства, на который указывает ptd объект, из которого объект может извлекать метрики устройств и тестировать возможности устройства. Если ptd значение РАВНО NULL, объект должен игнорировать значение в элементе hicTargetDev .

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

prcBounds
Указатель на структуру RECTL , указывающую прямоугольник hdcDraw и в котором должен быть нарисован объект. Этот элемент управляет расположением и растяжением объекта. Этот элемент должен иметь значение NULL для рисования активного объекта без окна. В любой другой ситуации ЗНАЧЕНИЕ NULL не является юридическим значением и должно привести к коду E_INVALIDARG ошибки. Если контейнер передает значение, отличное от NULL, объект должен отобразить запрошенный аспект в указанный контекст устройства и прямоугольник. Контейнер может запросить его от объекта без окна, чтобы отобразить второе, неактивное представление объекта или распечатать объект.

prcWBounds
Если hdcDraw это контекст устройства метафайла (см. раздел GetDeviceCaps в пакете SDK для Windows), это указатель на RECTL структуру, указывающую ограничивающий прямоугольник в базовом метафайле. Структура прямоугольника содержит экстент окна и источник окна. Эти значения полезны для рисования метафайлов. Прямоугольник, указанный в prcBounds прямоугольнике, вложен в этот prcWBounds прямоугольник; они находятся в одном пространстве координат.

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

bZoomed
Ненулевое значение, если целевой объект имеет коэффициент масштабирования, в противном случае — значение 0. Коэффициент масштабирования хранится в ZoomNum.

bRectInHimetric
Ненулевое значение, если измерения prcBounds находятся в HIMETRIC, в противном случае — значение 0.

ZoomNum
Ширина и высота прямоугольника, в который отрисовывается объект. Коэффициент масштабирования вдоль оси x (доля естественного размера объекта в текущей степени) целевого объекта — это значение ZoomNum.cx , разделенное на значение ZoomDen.cx. Коэффициент масштабирования вдоль оси Y достигается аналогичным образом.

ZoomDen
Фактическая ширина и высота целевого объекта.

Замечания

Обычное использование этой структуры — получение информации во время отрисовки целевого объекта. Например, можно получить значения из ATL_DRAWINFO внутри перегрузки CComControlBase::OnDrawAdvanced.

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

Требования

Header: atlctl.h

См. также

Классы и структуры
IViewObject::D raw
CComControlBase::OnDrawAdvanced