CView::OnPrepareDC
Chamado pela estrutura antes que a função de membro de OnDraw é chamada para a exibição e antes da função de membro de OnPrint é chamada para cada página durante a impressão ou a visualização de 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
Os pontos a CPrintInfo estrutura que descreve o trabalho de impressão atual se OnPrepareDC está sendo chamado para imprimir ou visualização de impressão; o membro de m_nCurPage especifica a página sobre a ser impressa. Esse parâmetro é NULO se OnPrepareDC está sendo chamado para a exibição.
Comentários
A implementação padrão de essa função não fará nada se a função é chamada para a exibição. Em o entanto, essa função é substituído em classes derivadas, como CScrollView, para ajustar atributos de contexto de dispositivo; portanto, você sempre deve chamar a implementação da classe base no início da sua substituição.
Se a função é chamada por padrão, a implementação examina a informação de página armazenada no parâmetro de pInfo . Se o comprimento do documento não foi especificado, OnPrepareDC assume o documento para ser uma página por muito tempo e para o loop de impressão depois que uma página foi impressa. A função para o loop de impressão definindo o membro de m_bContinuePrinting da estrutura Falso.
Substitua OnPrepareDC para um dos seguintes motivos:
Para ajustar quando necessário atributos de contexto de dispositivo para a página especificada. Por exemplo, se você precisa definir o modo de mapeamento ou outras características do contexto de dispositivo, faça isso em esta função.
Para executar paginação de PRINT- hora. Normalmente você especifica o comprimento do documento enquanto a impressão começará, usando a função de membro de OnPreparePrinting . Em o entanto, se você não sabe com antecedência quanto tempo o documento é (por exemplo, para imprimir um número indefinido de registros de um banco de dados), substituição OnPrepareDC para testar ao final do documento enquanto é impresso. Quando não há mais de documento a ser impresso, defina o membro de m_bContinuePrinting estrutura de CPrintInfo a Falso.
Para enviar uma página por códigos de escape para a impressora em uma base. Para enviar código de escape de OnPrepareDC, chame a função de membro de Escape de parâmetro de pDC .
Chame a versão da classe base de OnPrepareDC no início da sua substituição.
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