CPageSetupDialog::CPageSetupDialog
CPageSetupDialog のオブジェクトを構築するには、この関数を呼び出します。
CPageSetupDialog(
DWORD dwFlags = PSD_MARGINS | PSD_INWININIINTLMEASURE,
CWnd* pParentWnd = NULL
);
パラメーター
dwFlags
ダイアログ ボックスの設定をカスタマイズするために使用できる一つ以上のフラグ。値は、ビットごとの OR 演算子を使用して組み合わせることができます。これらの値は次のとおりです。:PSD_DEFAULTMINMARGINS はプリンターの最小値と同じになる余白の最小の有効な幅を設定します。このフラグは PSD_MARGINS と PSD_MINMARGINS のフラグも指定されている場合は無視されます。
実行されていないPSD_INWININIINTLMEASURE。
PSD_MINMARGINS にシステムは rtMinMargin のメンバーで指定された左、上、右、および下部余白の最小の有効な幅として値を使用します。システムは、ユーザーが指定された最小値未満幅を入力するのを防ぎます。PSD_MINMARGINS が指定されていない場合、システムはプリンターで許可されているものと最小の有効な幅を設定します。
PSD_MARGINS マージンは、コントロール内の領域をアクティブにします。
PSD_INTHOUSANDTHSOFINCHES は、ダイアログ ボックスのの 1/1000 をインチ単位で計測します。
PSD_INHUNDREDTHSOFMILLIMETERS は、ダイアログ ボックスのの 1/100 をミリメートル単位で計測します。
PSD_DISABLEMARGINS は、余白のダイアログ ボックスのコントロールを無効にします。
PSD_DISABLEPRINTER はプリンターのボタンが無効になります。
PSD_NOWARNING はプリンターがない場合に警告メッセージが表示されません。
PSD_DISABLEORIENTATION は、ダイアログ コントロールの向きを無効にします。
PSD_RETURNDEFAULT により CPageSetupDialog は、システムのプリンターのダイアログ ボックスを表示せずに初期化される DEVMODE と DEVNAMES の構造体を返します。hDevNames と hDevMode の両方が nullであることを前提としています; それ以外の場合、関数はエラーを返します。システムのプリンターが古いプリンター ドライバーによって hDevNames だけが返されます (Windows 3.0 よりも前に、サポートされている場合) ; hDevMode は nullです。
PSD_DISABLEPAPER は、用紙選択コントロールを無効にします。
PSD_SHOWHELP によりダイアログ ボックスは、[ヘルプ]を示します。hwndOwner のメンバーは、このフラグが指定されている場合 null である必要があります。
PSD_ENABLEPAGESETUPHOOK は lpfnSetupHookで指定したフック関数を有効にします。
PSD_ENABLEPAGESETUPTEMPLATE で、オペレーティング システムは hInstance と lpSetupTemplateNameによって識別されるダイアログ ボックス テンプレートを使用してダイアログ ボックスを作成します。
PSD_ENABLEPAGESETUPTEMPLATEHANDLE は hInstance をプリロード済みダイアログ ボックス テンプレートを含むデータ ブロックを識別することを示します。システムは、このフラグが指定されている場合 lpSetupTemplateName を無視します。
PSD_ENABLEPAGEPAINTHOOK は lpfnPagePaintHookで指定したフック関数を有効にします。
PSD_DISABLEPAGEPAINTING は、ダイアログ ボックスの描画領域を無効にします。
pParentWnd
ダイアログ ボックスの親ウィンドウまたはオーナーへのポインター。
解説
ダイアログ ボックスを表示するに DoModal 関数を使用します。
使用例
void CMyRichEditView::OnPageSetupDlg()
{
CPageSetupDialog psd(PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS |
PSD_ENABLEPAGEPAINTHOOK, this);
// Initialize margins
psd.m_psd.rtMargin.top = 1000;
psd.m_psd.rtMargin.left = 1250;
psd.m_psd.rtMargin.right = 1250;
psd.m_psd.rtMargin.bottom = 1000;
psd.m_psd.lpfnPagePaintHook = (LPPAGEPAINTHOOK)PaintHook;
if(IDOK == psd.DoModal())
{
// Propagate changes to the app
AfxGetApp()->SelectPrinter(psd.m_psd.hDevNames, psd.m_psd.hDevMode);
}
else
{
TRACE(_T("CommDlgExtendedError returned error %d from ")
_T("CPageSetupDialog::DoModal().\n"),
(int)CommDlgExtendedError());
}
}
必要条件
ヘッダー : afxdlgs.h