Estrutura ATL_DRAWINFO

Contém informações usadas para renderização em vários destinos, como impressora, metarquivo ou controle ActiveX.

Sintaxe

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;
};

Membros

cbSize
O tamanho da estrutura em bytes.

dwDrawAspect
Especifica como o destino deve ser representado. As representações podem incluir conteúdo, um ícone, uma miniatura ou um documento impresso. Para obter uma lista de valores possíveis, consulte DVASPECT e DVASPECT2.

lindex
Parte do destino que é de interesse para a operação de desenho. Sua interpretação varia dependendo do valor no membro dwDrawAspect.

ptd
Ponteiro para uma estrutura DVTARGETDEVICE que permite otimizações de desenho, dependendo do aspecto especificado. Observe que objetos e contêineres mais recentes que dão suporte a interfaces de desenho otimizadas também dão suporte a esse membro. Objetos e contêineres mais antigos que não dão suporte a interfaces de desenho otimizadas sempre especificam NULL para esse membro.

hicTargetDev
Contexto de informações para o dispositivo de destino apontado pelo ptd no qual o objeto pode extrair métricas do dispositivo e testar os recursos do dispositivo. Se ptd for NULL, o objeto deverá ignorar o valor no membro hicTargetDev.

hdcDraw
O contexto de dispositivo sobre o qual desenhar. Para um objeto sem janelas, o membro hdcDraw está no modo de mapeamento MM_TEXT com suas coordenadas lógicas que correspondem às coordenadas do cliente da janela que o contém. Além disso, o contexto do dispositivo deve estar no mesmo estado que o normalmente passado por uma mensagem WM_PAINT.

prcBounds
Ponteiro para uma estrutura RECTL especificando o retângulo em hdcDraw e no qual o objeto deve ser desenhado. Esse membro controla o posicionamento e o alongamento do objeto. Esse membro deve ser NULL para desenhar um objeto ativo no local sem janelas. Em todas as outras situações, NULL não é um valor legal e deve resultar em um código de erro E_INVALIDARG. Se o contêiner passar um valor não NULL para um objeto sem janelas, o objeto deve renderizar o aspecto solicitado no contexto e no retângulo do dispositivo especificado. Um contêiner pode solicitar isso de um objeto sem janelas para renderizar uma segunda exibição não ativa do objeto ou imprimir o objeto.

prcWBounds
Se hdcDraw for um contexto de dispositivo de metarquivo (consulte GetDeviceCaps no SDK do Windows), este será um ponteiro para uma estrutura RECTL que especifica o retângulo delimitador no metarquivo subjacente. A estrutura do retângulo contém a extensão da janela e a origem da janela. Esses valores são úteis para desenhar metarquivos. O retângulo indicado por prcBounds está aninhado dentro deste retângulo prcWBounds, eles estão no mesmo espaço de coordenadas.

bOptimize
Diferente de zero se o desenho do controle deve ser otimizado, caso contrário, 0. Se o desenho for otimizado, o estado do contexto do dispositivo será restaurado automaticamente quando você terminar de renderizar.

bZoomed
Diferente de zero se o destino tiver um fator de zoom, caso contrário, 0. O fator de zoom é armazenado em ZoomNum.

bRectInHimetric
Diferente de zero se as dimensões de prcBounds estiverem em HIMETRIC, caso contrário, 0.

ZoomNum
A largura e a altura do retângulo no qual o objeto é renderizado. O fator de zoom ao longo do eixo x (a proporção do tamanho natural do objeto em sua extensão atual) do destino é o valor de ZoomNum.cx dividido pelo valor de ZoomDen.cx. O fator de zoom ao longo do eixo y é obtido de forma semelhante.

ZoomDen
A largura e a altura reais do destino.

Comentários

O uso típico dessa estrutura seria a recuperação de informações durante a renderização do objeto de destino. Por exemplo, você pode recuperar valores de ATL_DRAWINFO dentro de sua sobrecarga de CComControlBase::OnDrawAdvanced.

Essa estrutura armazena informações pertinentes usadas para renderizar a aparência de um objeto para o dispositivo de destino. As informações fornecidas podem ser usadas no desenho para a tela, uma impressora ou até mesmo um metarquivo.

Requisitos

Cabeçalho: atlctl.h

Confira também

Classes e structs
IViewObject::Draw
CComControlBase::OnDrawAdvanced