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