Compartilhar 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 da hierarquia

CDC::escape

CDC::EndDoc

CDC::AbortDoc