CDC::StartDoc
Notifica al driver di dispositivo che un nuovo processo di stampa è iniziale e che tutti gli StartPage e chiamate successive EndPage devono essere aggiunti nello stesso processo finché una chiamata EndDoc non si verifichi.
int StartDoc(
LPDOCINFO lpDocInfo
);
int StartDoc(
LPCTSTR lpszDocName
);
Parametri
lpDocInfo
Punta a una struttura DOCINFO contenente il nome del file di documento e il nome del file di output.lpszDocName
Puntatore a una stringa contenente il nome del file di documento.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è maggiore di zero. Questo valore è l'identificatore del processo di stampa del documento.
Se la funzione ha esito negativo, il valore restituito è minore o uguale a zero.
Note
Questo assicura che i documenti più tempo di una pagina non sono inframmezzati con altri processi.
Per le versioni di Windows 3,1 e versioni successive, questa funzione sostituisce la fuga della stampante STARTDOC. Utilizzando questa funzione garantisce che i documenti che contengono più pagine non sono inframmezzati con altri processi.
StartDoc non deve essere utilizzato in un metafile.
Esempio
Nel frammento di codice ottiene la stampante predefinita, apre un processo di stampa e le bobine una pagina con "hello, world!" su. Poiché il testo visualizzato dal codice non viene ridimensionato alle unità logiche della stampante, il testo di output può essere in tali lettere minuscole che il risultato è illeggibile. Il CDC che ridimensiona le funzioni, come SetMapMode, SetViewportOrge SetWindowExt, può essere utilizzato per correggere la scala.
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);
}
}
}
}
Requisiti
Header: afxwin.h