Compartir a través de


CDC::StartDoc

Informa al controlador de dispositivo que un nuevo trabajo de impresión está iniciando y que todo el StartPage y llamadas subsiguientes de EndPage se deben colocar en cola bajo el mismo trabajo hasta que una llamada de EndDoc aparece.

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

Parámetros

  • lpDocInfo
    Señala una estructura de DOCINFO que contiene el nombre de archivo de documento y el nombre del archivo de salida.

  • lpszDocName
    Puntero a una cadena que contiene el nombre de archivo de documento.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es mayor que cero.Este valor es el identificador del trabajo de impresión del documento.

Si se produce un error en la función, el valor devuelto es menor o igual que cero.

Comentarios

Esto garantiza que los documentos de una página no son entremezclados más tiempo con otros trabajos.

Para las versiones de Windows 3,1 y versiones posteriores, esta función reemplaza el escape de impresora de STARTDOC .Utilizando esta función garantiza que los documentos que contienen más de una página no se están intercalados con otros trabajos de impresión.

StartDoc no se debe utilizar dentro de metarchivos.

Ejemplo

Este fragmento de código obtiene la impresora predeterminada, abra un trabajo de impresión, y pone en cola una página con “Hello, World!” en él.Dado que el texto formulario por este código no se ajusta a las unidades lógicas de la impresora, el texto de salida puede ser en tales pequeñas letras que el resultado es ilegible.La escala de la CDC funciona, por ejemplo SetMapMode, SetViewportOrg, y SetWindowExt, se puede utilizar para corregir el ajuste de escala.

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

encabezado: afxwin.h

Vea también

Referencia

Clase de la CDC

Gráfico de jerarquía

CDC::Escape

CDC::EndDoc

CDC::AbortDoc