Partilhar via


CDC::StartDoc

Informa o driver de dispositivo que um novo trabalho de impressão está inicial e que qualquer StartPage e chamadas subseqüentes de EndPage devem ser rolados nos mesmos trabalho até que uma chamada de EndDoc ocorra.

int StartDoc(
   LPDOCINFO lpDocInfo 
);
int StartDoc(
   LPCTSTR lpszDocName 
);

Parâmetros

  • lpDocInfo
    Pontos a estrutura de DOCINFO que contém o nome do arquivo de documento e o nome do arquivo de saída.

  • lpszDocName
    Ponteiro para uma cadeia de caracteres que contém o nome do arquivo de documento.

Valor de retorno

Se a função for bem sucedida, o valor de retorno é maior que zero.Esse valor é o identificador de trabalho de impressão para o documento.

Se a função falhar, o valor de retorno é menor ou igual a zero.

Comentários

Isso garante que os documentos de uma página não são intercalados mais tempo com outros trabalhos.

Para versões do windows 3,1 e posterior, essa função substitui o escape de impressora de STARTDOC .Usar essa função garante que os documentos que contêm mais de uma página não são intercalados com outros trabalhos de impressão.

StartDoc não deve ser usado dentro de gráficos.

Exemplo

O fragmento de código a seguir obtém a impressora padrão, abre um trabalho de impressão, e spoois uma página com “hello, world!” em ele.Porque o texto impresso por esse código não é dimensionado para unidades lógicas da impressora, o texto de saída pode ser em tais letras pequenas que o resultado é ilegível.A escala de CDC funciona, como SetMapMode, SetViewportOrg, e SetWindowExt, pode ser usado para corrigir o dimensionamento.

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);
        }
      }
   }
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

CDC Class

Gráfico de hierarquia

CDC::Escape

CDC::EndDoc

CDC::AbortDoc