Udostępnij za pośrednictwem


CView::OnPrepareDC

Wywoływany przez ram przed OnDraw wywoływana jest funkcja Członkowskie do wyświetlania na ekranie i przed OnPrint Członkowskich funkcja nazywa się dla każdej strony podczas drukowania lub podglądu.

virtual void OnPrepareDC(
   CDC* pDC,
   CPrintInfo* pInfo = NULL 
);

Parametry

  • pDC
    Punkty do kontekstu urządzenia służące renderowanie obrazu dokumentu.

  • pInfo
    Wskazuje na CPrintInfo struktura opisująca bieżące zadanie drukowania, jeśli OnPrepareDC jest wywoływana dla drukowania lub podglądu; m_nCurPage Członkowskich określa strony do wydrukowania.Ten parametr jest NULL Jeśli OnPrepareDC jest wywoływana dla ekranu.

Uwagi

Domyślna implementacja tej funkcji nie zadziała, jeśli funkcja jest wywoływana dla ekranu.Jednak ta funkcja zostanie zastąpione klas pochodnych, takie jak CScrollView, aby dopasować atrybuty kontekstu urządzenia; Implementacja klasy podstawowej należy w konsekwencji wywoływanie zawsze na początku na zastępowanie.

Jeśli funkcja jest wywoływana dla drukowania, domyślna implementacja analizuje stronę informacje przechowywane w pInfo parametru.Jeśli długość dokumentu nie została określona, OnPrepareDC zakłada dokument do jednej strony długi i zatrzymuje pętli drukowania po jednej stronie został wydrukowany.Funkcja zatrzymuje pętli wydruku przez ustawienie m_bContinuePrinting Członkowskich struktury do FALSE.

Zastąpić OnPrepareDC z następujących powodów:

  • Aby dostosować atrybuty kontekstu urządzenia dla określonej strony.Na przykład jeśli trzeba ustawić tryb mapowania lub innych właściwości kontekstu urządzenia zrobić w tej funkcji.

  • Aby wykonać dzielenia czas drukowania.Zazwyczaj określić długość dokumentu po rozpoczęciu drukowania przy użyciu OnPreparePrinting funkcji składowej.Jednak jeśli nie znasz z góry, jak długo dokumentu (na przykład podczas drukowania nieokreślonej liczby rekordów z bazy danych), zastąpić OnPrepareDC do testowania na końcu dokumentu, podczas gdy on wydrukowany.Jeśli istnieje więcej nie do drukowania dokumentu, ustaw m_bContinuePrinting członek CPrintInfo struktury do FALSE.

  • Aby wysłać kody ucieczki do drukarki na podstawie przez strony.Aby wysłać kody ucieczki z OnPrepareDC, call Escape Członkowskich funkcji pDC parametru.

Wywołanie klasy podstawowej wersji OnPrepareDC na początku na zastępowanie.

Przykład

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);
   }
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CView

Wykres hierarchii

CDC::Escape

Struktura CPrintInfo

CView::OnBeginPrinting

CView::OnDraw

CView::OnPreparePrinting

CView::OnPrint