CPageSetupDialog::CPageSetupDialog
更新 : 2007 年 11 月
CPageSetupDialog オブジェクトを構築します。
CPageSetupDialog(
DWORD dwFlags = PSD_MARGINS | PSD_INWININIINTLMEASURE,
CWnd* pParentWnd = NULL
);
パラメータ
dwFlags
ダイアログ ボックスの設定をカスタマイズするために使用できる 1 つ以上のフラグ。この値は、ビットごとの OR 演算子を使って組み合わせることができます。これらの値には次の意味があります。PSD_DEFAULTMINMARGINS ページ マージンに指定できる最小幅をプリンタの最小幅と同じになるように設定します。PSD_MARGINS と PSD_MINMARGINS フラグが指定されていると、このフラグは無視されます。
PSD_INWININIINTLMEASURE 実装されていません。
PSD_MINMARGINS 上下左右のマージンに指定できる最小幅として、rtMinMargin メンバで指定された値が使われるようにします。システムは、指定された最小幅より小さい値をユーザーが入力できないようにします。PSD_MINMARGINS が指定されないと、システムは指定できる最小幅としてプリンタの最小幅を設定します。
PSD_MARGINS マージン コントロール領域をアクティブにします。
PSD_INTHOUSANDTHSOFINCHES ダイアログ ボックスの単位を 1/1000 インチ単位にします。
PSD_INHUNDREDTHSOFMILLIMETERS ダイアログ ボックスの単位を 1/100mm 単位にします。
PSD_DISABLEMARGINS マージン ダイアログ ボックス コントロールを無効にします。
PSD_DISABLEPRINTER [プリンタ] ボタンを無効にします。
PSD_NOWARNING 既定のプリンタがないときに表示される警告メッセージが表示されないようにします。
PSD_DISABLEORIENTATION ページの向きのダイアログ コントロールを無効にします。
PSD_RETURNDEFAULT ダイアログ ボックスの表示なしで、システムの既定のプリンタ用に初期化された DEVMODE 構造体と DEVNAMES 構造体 構造体を CPageSetupDialog が返すようにします。hDevNames と hDevMode の両方が NULL であることを前提としています。そうでないと、関数はエラーを返します。システムの既定のプリンタが古いプリンタ ドライバ (Windows Version 3.0 以前のもの) によってサポートされていると、hDevNames だけが返され、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
ダイアログ ボックスの親またはオーナーへのポインタ。
解説
ダイアログ ボックスを表示するには、CDialog::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