Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Chamado pelo estrutura antes do OnDraw membro função é chamada para exibição na tela e antes do AoImprimir membro função é chamada para cada página durante a visualização de impressão ou impressão.
virtual void OnPrepareDC(
CDC* pDC,
CPrintInfo* pInfo = NULL
);
Parâmetros
pDC
Aponta para o contexto de dispositivo a ser usado para processar uma imagem do documento.pInfo
Aponta para um CPrintInfo estrutura que descreve o trabalho de impressão corrente se OnPrepareDC está sendo chamada para visualização de impressão ou impressão; o m_nCurPage membro Especifica a página prestes a ser impresso. Este parâmetro é NULO if OnPrepareDC está sendo chamada para exibição na tela.
Comentários
A implementação padrão dessa função não terá efeito se a função é chamada para exibição na tela.No entanto, essa função é substituída em classes derivadas, sistema autônomo CScrollView, para ajustar sistema autônomo atributos do contexto de dispositivo; Conseqüentemente, você sempre deve chamar a implementação da classe base no início de sua substituir.
Se a função é chamada para impressão, a implementação padrão examina as informações de página armazenadas no pInfo parâmetro. Se o comprimento do documento não tiver sido especificado, OnPrepareDC supõe que o documento seja uma página longa e interrompe o loop de impressão após uma página foi impressa. A função interrompe o loop de impressão, definindo o m_bContinuePrinting membro da estrutura para FALSE.
Substituir OnPrepareDC para qualquer um dos seguintes motivos:
Para ajustar sistema autônomo atributos do contexto de dispositivo conforme necessário para a página especificada.Por exemplo, se você precisar conjunto o modo de mapeamento ou outras características do contexto de dispositivo, fazê-lo nessa função.
Para executar a paginação de time de impressão.Normalmente você especificar o período do documento quando a impressão começa, usando o OnPreparePrintingfunção de membro .No entanto, se você não souber antecipadamente quanto tempo o documento está (por exemplo, ao imprimir um número indeterminado de registros a partir de um banco de dados), substituir OnPrepareDC Para testar o participante do documento enquanto ele está sendo impressa. Quando há não mais do documento a ser impresso, conjunto o m_bContinuePrinting membro de CPrintInfo estrutura para FALSE.
Para enviar os códigos de escape para a impressora em cada página por página.Para enviar os códigos de escape de OnPrepareDC, telefonar o Escape função de membro do pDC parâmetro.
Chame a versão de classe base de OnPrepareDC no início de sua substituir.
Exemplo
void CMyView::OnPrepareDC (CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
// If we are printing, set the mapmode and the window
// extent properly, then set viewport extent. Use the
// SetViewportOrg member function in the CDC class to
// move the viewport origin to the center of the view.
if(pDC->IsPrinting()) // Is the DC a printer DC.
{
CRect rect;
GetClientRect (&rect);
pDC->SetMapMode(MM_ISOTROPIC);
CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width()/2, rect.Height()/2);
}
}
Requisitos
Cabeçalho: afxwin.h