次の方法で共有


CDC::StartDoc

新しい印刷ジョブが開始されたこと、および EndDoc の呼び出しが発生するまで EndPage のすべての後続 StartPage と呼び出しが同じジョブの下にスプールされる必要があることをデバイス ドライバーに通知します。

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

パラメーター

  • lpDocInfo
    ドキュメント ファイルの名前と出力ファイルの名前を含む DOCINFO の構造体へのポインター。

  • lpszDocName
    ドキュメント ファイルの名前を含む文字列へのポインター。

戻り値

関数が正常に終了した場合、戻り値はゼロより大きい。この値は、ドキュメントの印刷ジョブの識別子です。

関数が失敗した場合、戻り値は以下です。

解説

これはドキュメントが他のジョブにより、1 ページ混在しないようにします。

Windows Version 3.1 以降の場合、この関数は STARTDOC のプリンターのエスケープを置き換えます。この関数を使用して、複数のページを含むドキュメントが他の印刷ジョブが混在していないことを確認します。

StartDoc はメタファイルの中で使用する必要があります。

使用例

このコードは、プリンター、印刷ジョブを取得します。開き、スプールを 1 ページが「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