Aracılığıyla paylaş


CDC::StartDoc

Yeni bir yazdırma işi başlatma aygıtı sürücüsü bilgilendirir ve izleyen StartPage ve EndPage aramaları belleğe kadar aynı işi altında bir EndDoc çağrısı gerçekleşir.

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

Parametreler

  • lpDocInfo
    İşaret eden bir DOCINFO belge dosyasının adı ve çıktı dosyasının adını içeren yapısı.

  • lpszDocName
    Belgenin dosya adını içeren bir dize işaretçisi.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri sıfırdan büyük olan.Bu değer belge için yazdırma işini tanımlayıcısıdır.

İşlev başarısız olur, dönüş değeri sıfıra eşit veya daha az olur.

Notlar

Bu belgelerin bir sayfadan daha uzun olan diğer projelere interspersed değil sağlar.

Windows 3.1 ve daha sonraki sürümleri için bu işlevi değiştirir startdoc yazıcı çıkış.Bu işlevi kullanarak, birden fazla sayfa içeren belgeleri ile diğer yazdırma işleri interspersed değil sağlar.

StartDocmeta dosyaları içinde kullanılmamalıdır.

Örnek

Bu kod parçası, varsayılan yazıcı alır, bir yazdırma işi açar ve "Hello, World!" ile bir sayfa üzerinde biriktirir.Bu kod tarafından basılan metin için yazıcının mantıksal birimler ölçeklendirilmez çünkü çıktı metin sonucu okunamayacak kadar böyle küçük harflerle olabilir.İşlevler, ölçekleme gibi hdm SetMapMode, SetViewportOrg, ve SetWindowExt, ölçekleme düzeltmek için kullanılır.

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

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CDC Sınıfı

Hiyerarşi grafik

CDC::Escape

CDC::EndDoc

CDC::AbortDoc