다음을 통해 공유


CDC::StartDoc

새 인쇄 작업을 시작 하 고 장치 드라이버를 알립니다 고 이후의 모든 StartPageEndPage 호출 될 때까지 같은 작업에서 스풀 합니다는 EndDoc 호출이 발생 합니다.

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

매개 변수

  • lpDocInfo
    가리키는 있는 DOCINFO 문서 파일 이름과 출력 파일 이름을 포함 하는 구조입니다.

  • lpszDocName
    문서 파일의 이름을 포함 하는 문자열에 대 한 포인터입니다.

반환 값

함수가 성공 하면 반환 값이 0 보다 큽니다. 이 값은 문서의 인쇄 작업 식별자입니다.

함수가 실패 하면 반환 값이 0 보다 작거나입니다.

설명

이 문서 한 페이지 보다 더 다른 작업과 섞여 수 있는지 확인 합니다.

Windows 3.1 및 이후 버전에서이 함수를 대체는 STARTDOC 프린터 이스케이프 합니다. 이 함수를 사용 하 여 둘 이상의 페이지를 포함 하는 문서에 다른 인쇄 작업을 삽입 되는 보장 합니다.

StartDoc내부 메타 파일을 사용 해야 합니다.

예제

이 코드 조각, 인쇄 작업을 열리고 "Hello, World!"를 한 페이지에 스풀링하고 기본 프린터를 가져옵니다. 텍스트에서이 코드를 인쇄 하는 프린터 논리 단위 배율이 조정 되지 않습니다 때문에 출력 텍스트 결과 읽을 수 없습니다 이러한 작은 문자를 수 있습니다. 같은 기능을 확장 하는 CDC SetMapMode, SetViewportOrg, 및 SetWindowExt의 크기를 수정 하려면 사용할 수 있습니다.

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

요구 사항

헤더: afxwin.h

참고 항목

참조

CDC 클래스

계층 구조 차트

CDC::Escape

CDC::EndDoc

CDC::AbortDoc