CPrintDialog::GetDefaults

ダイアログ ボックスを表示せずにプリンター デバイスの既定値を取得します。

BOOL GetDefaults( );

戻り値

関数が正常に終了した場合は、; それ以外の場合は 0。

解説

取得した値は m_pd の構造に設定されます。

場合によっては、bPrintSetupOnly の CPrintDialogコンストラクター がに設定 FALSEこの関数の呼び出しを呼び出します。このような場合、プリンター DC) と hDevNameshDevMode ( m_pd のデータ メンバーにある 2 個のハンドル) が自動的に割り当てられます。

CPrintDialog のコンストラクターが FALSEに設定した場合 bPrintSetupOnly と呼び出された場合、この関数は呼び出し元にのみ hDevNameshDevMode ( m_pd.hDevNamesm_pd.hDevModeにある返されますが、m_pd.hDCのプリンター DC) を返します。これは CPrintDialog のオブジェクトを使い終わったら、プリンター DC) を削除し、ハンドル GlobalFree Windows の関数を呼び出す呼び出し元が保証します。

使用例

このコードは、ユーザーがプリンター デバイス コンテキストおよびレポートの dpi プリンターの解決を取得します。(プリンターの機能のこの属性は、DPI と呼ばれます)。

CPrintDialog dlg(FALSE);

if (!dlg.GetDefaults())
{
   AfxMessageBox(_T("You have no default printer!"));
}
else
{
   // attach to the DC we were given
   CDC dc;
   dc.Attach(dlg.m_pd.hDC);

   // ask for the measurements
   int nHorz = dc.GetDeviceCaps(LOGPIXELSX);
   int nVert = dc.GetDeviceCaps(LOGPIXELSY);

   // almost always the same in both directions, but sometimes not!
   CString str;
   if (nHorz == nVert)
   {
      str.Format(_T("Your printer supports %d pixels per inch"), nHorz);
   }
   else
   {
      str.Format(_T("Your printer supports %d pixels per inch ")
         _T("horizontal resolution, and %d pixels per inch vertical ")
         _T("resolution"), nHorz, nVert);
   }

   // tell the user
   AfxMessageBox(str);

   // Note: no need to call Detach() because we want the CDC destructor
   // to call FreeDC() on the DC we borrowed from the common dialog
}

必要条件

ヘッダー : afxdlgs.h

参照

関連項目

CPrintDialog クラス

階層図

CPrintDialog::m_pd

CPrintDialog::GetDeviceName

CPrintDialog::GetDriverName

CPrintDialog::GetPortName