CView::OnPrepareDC

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

Consulte também

Referência

Classe CView

Gráfico de hierarquia

CDC::Escape

Estrutura CPrintInfo

CView::OnBeginPrinting

CView::OnDraw

CView::OnPreparePrinting

CView::OnPrint

Outros recursos

CView membros