Udostępnij za pośrednictwem


CDC::StartDoc

Informuje sterownika urządzenia, który uruchamia zadanie drukowania i wszystkich kolejnych StartPage i EndPage mają być buforowane wywołań w ramach tej samej pracy aż do EndDoc wywołania.

int StartDoc( 
   LPDOCINFO lpDocInfo  
); 
int StartDoc( 
   LPCTSTR lpszDocName  
);

Parametry

  • lpDocInfo
    Wskazuje na DOCINFO struktury zawierającej nazwę pliku dokumentu i nazwa pliku wyjściowego.

  • lpszDocName
    Wskaźnik, aby ciąg zawierający nazwę pliku dokumentu.

Wartość zwracana

Jeśli funkcja się powiedzie, zwracana wartość jest większa niż zero.Ta wartość jest identyfikator zadania drukowania dokumentu.

Jeśli funkcja zawiedzie, wartość zwracana jest mniejsza lub równa zero.

Uwagi

Gwarantuje to, że dokumenty więcej niż jednej strony nie będą przeplatane z innych zadań.

Dla systemu Windows w wersji 3.1 lub nowszej, to funkcja zastępuje STARTDOC escape drukarki.Za pomocą tej funkcji zapewnia, że dokumenty zawierające więcej niż jedną stronę nie są naprzemiennie z innych zadań drukowania.

StartDocnie powinny być używane wewnątrz metapliki.

Przykład

Ten fragment kodu pobiera drukarki domyślnej, otwiera zadania drukowania i buforuje jednej strony z "Hello, World!" na nim.Ponieważ tekst wydrukowany przez ten kod nie jest skalowany w drukarni jednostki logiczne, tekst wyjściowy może być w takich małych liter że wynik jest nieczytelny.CDC skalowanie funkcje, takie jak SetMapMode, SetViewportOrg, i SetWindowExt, można ustalić skalowanie.

void CDCView::DoStartDoc()
{
   // get the default printer
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();

   // is a default printer set up?
   HDC hdcPrinter = dlg.GetPrinterDC();
   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
   else
   {
      // create a CDC and attach it to the default printer
      CDC dcPrinter;
      dcPrinter.Attach(hdcPrinter);

      // call StartDoc() to begin printing
      DOCINFO docinfo;
      memset(&docinfo, 0, sizeof(docinfo));
      docinfo.cbSize = sizeof(docinfo);
      docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

      // if it fails, complain and exit gracefully 
      if (dcPrinter.StartDoc(&docinfo) < 0)
      {
        MessageBox(_T("Printer wouldn't initalize"));
      }
      else
      {
        // start a page 
        if (dcPrinter.StartPage() < 0)
        {
          MessageBox(_T("Could not start page"));
          dcPrinter.AbortDoc();
        }
        else
        {
          // actually do some printing
          CGdiObject* pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

          dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

          dcPrinter.EndPage();
          dcPrinter.EndDoc();
          dcPrinter.SelectObject(pOldFont);
        }
      }
   }
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CDC

Diagram hierarchii

CDC::Escape

CDC::EndDoc

CDC::AbortDoc