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