Estrutura de ATL_DRAWINFO
Contém informações usadas para processar vários destinos, como uma impressora, meta-arquivo, ou um controle 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;
};
Membros
cbSize
O tamanho de estrutura, em bytes.dwDrawAspect
Especifica como o destino deve ser representado.As representações podem incluir o conteúdo, um ícone, uma miniatura, ou um documento impresso.Para obter uma lista de valores possíveis, consulte DVASPECT e DVASPECT2.lindex
Parte de destino que é de interesse para a operação de desenho.A interpretação varia dependendo do valor do membro de dwDrawAspect .ptd
Ponteiro a estrutura de DVTARGETDEVICE que permite otimizações de desenho como o aspecto especificado.Observe que objetos mais recentes e contêiner que as interfaces otimizadas suporte de desenho oferecem suporte para esse membro também.Os objetos e um contêiner mais antigos que não suportem interfaces otimizadas de desenho sempre especificam NULO para esse membro.hicTargetDev
O contexto de informações para o dispositivo de destino apontado por ptd de que o objeto pode extrair métricas de dispositivo e testar os recursos do dispositivo.Se ptd é NULO, o objeto deve ignorar o valor no membro de hicTargetDev .hdcDraw
O contexto de dispositivo em que a desenhar.Para um objeto sem janelas, o membro de hdcDraw está em MM_TEXT que mapeia o modo com suas coordenadas lógicas correspondente as coordenadas do cliente de janela que a contém.Além de isso, o contexto de dispositivo deve estar no mesmo estado que o passado normalmente por uma mensagem de WM_PAINT .prcBounds
Ponteiro a estrutura de RECTL que especifica o retângulo em hdcDraw e em que o objeto deve ser desenhado.Esse membro controla o posicionamento e alongar-se do objeto.Esse membro deve ser NULO para desenhar um objeto ativo no local sem janelas.Em cada outra situação, NULO não é um valor válido e deve resultar em um código de erro de E_INVALIDARG .Se o recipiente não passa um valor deNULO a um objeto sem janelas, o objeto deve processar o aspecto aplicativo no contexto e especificados no retângulo de dispositivo.Um contêiner pode solicitar esse de um objeto sem janelas para processar uma segunda exibição, não ativa do objeto ou para imprimir o objeto.prcWBounds
Se hdcDraw é um contexto do dispositivo de metarquivo (consulte GetDeviceCaps em Windows SDK), este é um ponteiro a estrutura de 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 é aninhado dentro de esse retângulo de prcWBounds ; estiverem no mesmo espaço de coordenadas.bOptimize
Diferente de zero se o desenho do controle deve ser otimizada, se não 0.Se o desenho é otimizado para, o estado do contexto de dispositivo é restaurado automaticamente quando você tiver terminado processamento.bZoomed
Diferente de zero se o destino tem um fator de zoom, se não 0.O fator de zoom é armazenado em ZoomNum.bRectInHimetric
Diferente de zero se as dimensões de prcBounds estão em HIMETRIC, se não 0.ZoomNum
A largura e altura do retângulo em que o objeto é processado.O fator de zoom no eixo x (a proporção de tamanho natural do objeto à sua extensão atual) de destino é o valor de ZoomNum.cx dividido pelo valor de ZoomDen.cx.O fator de zoom no eixo y é obtido de uma maneira semelhante.ZoomDen
A largura e altura reais de destino.
Comentários
O uso típico de essa estrutura seria a recuperação de informações durante o processamento do objeto alvo.Por exemplo, você pode recuperar valores de ATL_DRAWINFO dentro da sobrecarga de CComControlBase::OnDrawAdvanced.
Essa estrutura armazena informações pertinentes usada para processar a aparência de um objeto para o dispositivo de destino.As informações fornecidas pode ser usada no desenho na tela, em uma impressora, ou até mesmo a meta-arquivo.
Requisitos
Cabeçalho: atlctl.h
Consulte também
Referência
CComControlBase::OnDrawAdvanced