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