Partager via


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

Voir aussi

Référence

CDC, classe

Graphique de la hiérarchie

CDC::Escape

CDC::EndDoc

CDC::AbortDoc