CDC::StartDoc
Informiert den Gerätetreiber, dass ein neuer Druckauftrag beginnen soll und dass alle folgenden StartPage und EndPage Aufrufe unter demselben Auftrag gespoolt werden sollen, bis ein Aufruf EndDoc auftritt.
int StartDoc(
LPDOCINFO lpDocInfo
);
int StartDoc(
LPCTSTR lpszDocName
);
Parameter
lpDocInfo
zeigt auf eine DOCINFO-Struktur, die den Namen der Dokumentdatei und den Namen der Ausgabedatei enthält.lpszDocName
Zeiger auf eine Zeichenfolge, die den Namen der Dokumentdatei enthält.
Rückgabewert
Wenn die Funktion folgt, ist der Rückgabewert größer als.Dieser Wert ist der Druckauftragsbezeichner für das Dokument.
Wenn die Funktion fehlschlägt, ist der Rückgabewert kleiner oder gleich Null.
Hinweise
Dadurch wird sichergestellt, dass Dokumente länger als eine Seite nicht mit anderen Aufträgen gemischt werden.
Für Windows-Versionen 3,1 und höher, ersetzt diese Funktion das STARTDOC Druckerescape.Mit dieser Funktion wird sichergestellt, dass die Dokumente, die mehr als eine Seite enthalten, nicht mit anderen Druckaufträgen gemischt werden.
StartDoc sollte nicht innerhalb der Metadateien verwendet werden.
Beispiel
Dieses Codefragment ruft den Standarddrucker ab, öffnet einen Druckauftrag spoolt und eine Seite mit "Hello, World!" dafür.Da der Text, der von diesen Code festzulegen, nicht auf die logischen Einheiten des Druckers skaliert wird, kann der Ausgabetext in solchen Kleinbuchstaben, dass das Ergebnis nicht lesbar ist.CDC, das Funktionen, z SetMapMode, SetViewportOrg und SetWindowExt skaliert, kann verwendet werden, um die Skalierung zu beheben.
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);
}
}
}
}
Anforderungen
Header: afxwin.h