CDC::StartDoc
Informe le pilote de périphérique qu'une nouvelle travail d'impression démarre et que tous les StartPage et appels suivants d' EndPage doivent être mis en attente sous le même travail tant qu'un appel d' EndDoc se produise.
int StartDoc(
LPDOCINFO lpDocInfo
);
int StartDoc(
LPCTSTR lpszDocName
);
Paramètres
lpDocInfo
Pointe vers une structure de DOCINFO contenant le nom du fichier de document et le nom du fichier de sortie.lpszDocName
Pointeur vers une chaîne contenant le nom du fichier de document.
Valeur de retour
Si la fonction réussit, la valeur de retour est supérieure à zéro. Cette valeur est l'identificateur de travail d'impression du document.
Si la fonction échoue, la valeur de retour est inférieur ou égal à zéro.
Notes
Cela garantit que les documents plus longtemps qu'une page ne seront pas entremêlés avec d'autres tâches.
Pour les versions de Windows 3,1 et versions ultérieures, cette fonction remplace l'échappement d'imprimante de STARTDOC . Cette fonction garantit que les documents contenant plusieurs pages ne sont pas entremêlés avec d'autres travaux d'impression.
StartDoc ne doit pas être utilisé dans des métafichiers.
Exemple
Ce fragment de code obtient l'imprimante par défaut, ouvre un travail d'impression, et met en attente une page avec « hello, world ! » dessus. Étant donné que le texte imprimé par ce code n'est pas mis à l'échelle aux unités logiques de l'imprimante, le texte de sortie peut être dans de telles casse que le résultat est illisible. La mise à l'échelle de CDC s'exécute, telles que SetMapMode, SetViewportOrg, et SetWindowExt, peut être utilisé pour résoudre la mise à l'échelle.
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);
}
}
}
}
Configuration requise
Header: afxwin.h