PAGESETUPDLGA 構造体 (commdlg.h)

PageSetupDlg 関数が [ページ設定] ダイアログ ボックスの初期化に使用する情報を格納します。 ユーザーがダイアログ ボックスを閉じると、この構造体のユーザー定義ページ パラメーターに関する情報が返されます。

構文

typedef struct tagPSDA {
  DWORD           lStructSize;
  HWND            hwndOwner;
  HGLOBAL         hDevMode;
  HGLOBAL         hDevNames;
  DWORD           Flags;
  POINT           ptPaperSize;
  RECT            rtMinMargin;
  RECT            rtMargin;
  HINSTANCE       hInstance;
  LPARAM          lCustData;
  LPPAGESETUPHOOK lpfnPageSetupHook;
  LPPAGEPAINTHOOK lpfnPagePaintHook;
  LPCSTR          lpPageSetupTemplateName;
  HGLOBAL         hPageSetupTemplate;
} PAGESETUPDLGA, *LPPAGESETUPDLGA;

メンバー

lStructSize

型: DWORD

この構造体のサイズ (バイト単位)。

hwndOwner

型: HWND

ダイアログ ボックスを所有するウィンドウへのハンドル。 このメンバーは、任意の有効なウィンドウ ハンドルにすることも、ダイアログ ボックスに所有者がない場合は NULL にすることもできます。

hDevMode

種類: HGLOBAL

DEVMODE 構造体を含むグローバル メモリ オブジェクトへのハンドル。 入力時にハンドルが指定されている場合、対応する DEVMODE 構造体の値を使用して、ダイアログ ボックス内のコントロールを初期化します。 出力時に、ダイアログ ボックスは hDevMode をグローバル メモリ ハンドルに設定し、ユーザーの選択を指定する値を含む DEVMODE 構造体に設定します。 ユーザーの選択が使用できない場合、ダイアログ ボックスは hDevModeNULL に設定します。

hDevNames

種類: HGLOBAL

DEVNAMES 構造体を含むグローバル メモリ オブジェクトへのハンドル。 この構造体には、ドライバー名、プリンター名、および出力ポート名を指定する 3 つの文字列が含まれています。 入力時にハンドルが指定されている場合、対応する DEVNAMES 構造体の文字列を使用して、ダイアログ ボックス内のコントロールを初期化します。 出力時に、ダイアログ ボックスは hDevNames をグローバル メモリ ハンドルに設定し、ユーザーの選択を指定する文字列を含む DEVNAMES 構造体に設定します。 ユーザーが選択できない場合、ダイアログ ボックスは hDevNamesNULL に設定します。

Flags

型: DWORD

[ ページ設定 ] ダイアログ ボックスの初期化に使用できるビット フラグのセット。 ダイアログ ボックスが返されると、ユーザーの入力を示すようにこれらのフラグが設定されます。 このメンバーには、次の値の 1 つ以上を指定できます。

説明
PSD_DEFAULTMINMARGINS
0x00000000
ユーザーがページ余白に指定できる最小値を、プリンターで許可される最小余白に設定します。 これは既定値です。 PSD_MARGINSフラグとPSD_MINMARGINSフラグも指定されている場合、このフラグは無視されます。
PSD_DISABLEMARGINS
0x00000010
余白コントロールを無効にし、ユーザーが余白を設定できないようにします。
PSD_DISABLEORIENTATION
0x00000100
方向コントロールを無効にし、ユーザーがページの向きを設定できないようにします。
PSD_DISABLEPAGEPAINTING
0x00080000
ダイアログ ボックスでサンプル ページの内容が描画されないようにします。 PagePaintHook フック プロシージャを有効にした場合でも、サンプル ページの内容を描画できます。
PSD_DISABLEPAPER
0x00000200
用紙のサイズやソースなどのページ パラメーターをユーザーが設定できないように、用紙コントロールを無効にします。
PSD_DISABLEPRINTER
0x00000020
互換性のために残されています。

Windows XP/2000: [プリンター] ボタンを無効にし、追加のプリンターセットアップ情報を含むダイアログ ボックスをユーザーが呼び出さないようにします。

PSD_ENABLEPAGEPAINTHOOK
0x00040000
lpfnPagePaintHook メンバーで指定されたフック プロシージャを有効にします。
PSD_ENABLEPAGESETUPHOOK
0x00002000
lpfnPageSetupHook メンバーで指定されたフック プロシージャを有効にします。
PSD_ENABLEPAGESETUPTEMPLATE
0x00008000
hInstance メンバーと lpPageSetupTemplateName メンバーが、既定のテンプレートの代わりに使用するダイアログ ボックス テンプレートを指定することを示します。
PSD_ENABLEPAGESETUPTEMPLATEHANDLE
0x00020000
hPageSetupTemplate メンバーが、事前に読み込まれたダイアログ ボックス テンプレートを含むデータ ブロックを識別することを示します。 このフラグが指定されている場合、システムは lpPageSetupTemplateName メンバーを無視します。
PSD_INHUNDREDTHSOFMILLIMETERS
0x00000008
100 分の 1 のミリメートルが余白と用紙サイズの単位であることを示します。 rtMarginrtMinMarginptPaperSize メンバーの値は、100 分の 1 ミリメートルです。 入力時にこのフラグを設定して、ユーザーのロケールの既定の測定単位をオーバーライドできます。 関数が戻ると、ダイアログ ボックスは、使用される単位を示すようにこのフラグを設定します。
PSD_INTHOUSANDTHSOFINCHES
0x00000004
1000 分の 1 インチが余白と用紙サイズの単位であることを示します。 rtMarginrtMinMarginptPaperSize メンバーの値は、1000 分の 1 インチです。 入力時にこのフラグを設定して、ユーザーのロケールの既定の測定単位をオーバーライドできます。 関数が戻ると、ダイアログ ボックスは、使用される単位を示すようにこのフラグを設定します。
PSD_INWININIINTLMEASURE
0x00000000
予約済み。
PSD_MARGINS
0x00000002
システムで rtMargin メンバーで指定された値を、左、上、右、および下の余白の初期幅として使用します。 PSD_MARGINSが設定されていない場合、システムはすべての余白の初期幅を 1 インチに設定します。
PSD_MINMARGINS
0x00000001
システムで rtMinMargin メンバーで指定された値を、左、上、右、および下の余白の最小許容幅として使用します。 システムは、ユーザーが指定された最小値より小さい幅を入力できないようにします。 PSD_MINMARGINSが指定されていない場合、システムは、プリンターで許可される最小の幅を設定します。
PSD_NONETWORKBUTTON
0x00200000
[ネットワーク] ボタンを非表示または無効にします。
PSD_NOWARNING
0x00000080
既定のプリンターがない場合にシステムに警告メッセージが表示されないようにします。
PSD_RETURNDEFAULT
0x00000400

PageSetupDlg では、ダイアログ ボックスは表示されません。 代わりに、 hDevNames メンバーと hDevMode メンバーを、システムの既定のプリンター用に初期化された DEVMODE 構造体と DEVNAMES 構造体にハンドルするように設定します。 hDevNames または hDevMode のいずれかが NULL でない場合、PageSetupDlg はエラーを返します。

PSD_SHOWHELP
0x00000800
ダイアログ ボックスに [ヘルプ ] ボタンが表示されます。 hwndOwner メンバーは、ユーザーが [ヘルプ] ボタンをクリックしたときにダイアログ ボックスが送信する HELPMSGSTRING 登録済みメッセージを受信するウィンドウを指定する必要があります。

ptPaperSize

種類: POINT

ユーザーが選択した用紙の寸法。 PSD_INTHOUSANDTHSOFINCHES または PSD_INHUNDREDTHSOFMILLIMETERS フラグは、測定単位を示します。

rtMinMargin

種類: RECT

左、上、右、および下の余白に使用できる最小幅。 PSD_MINMARGINS フラグが設定されていない場合、システムはこのメンバーを無視します。 これらの値は、 rtMargin メンバーで指定された値以下である必要があります。 PSD_INTHOUSANDTHSOFINCHES または PSD_INHUNDREDTHSOFMILLIMETERS フラグは、測定単位を示します。

rtMargin

種類: RECT

左、上、右、および下の余白の幅。 PSD_MARGINS フラグを設定した場合、rtMargin は初期余白の値を指定します。 PageSetupDlg が返されると、rtMargin にはユーザーが選択した余白の幅が含まれます。 PSD_INHUNDREDTHSOFMILLIMETERSまたはPSD_INTHOUSANDTHSOFINCHES フラグは、測定単位を示します。

hInstance

種類: HINSTANCE

PSD_ENABLEPAGESETUPTEMPLATE フラグが Flags メンバーに設定されている場合、hInstance、lpPageSetupTemplateName メンバーによって名前付けされたダイアログ ボックス テンプレートを含むアプリケーションまたはモジュール インスタンスへのハンドルです。

lCustData

種類: LPARAM

システムが lpfnPageSetupHook メンバーによって識別されるフック プロシージャに渡すアプリケーション定義データ。 システムが WM_INITDIALOG メッセージをフック・プロシージャーに送信する場合、メッセージの lParam パラメーターは、ダイアログの作成時に指定された PAGESETUPDLG 構造体へのポインターです。 フック プロシージャでは、このポインターを使用して lCustData 値を取得できます。

lpfnPageSetupHook

種類: LPPAGESETUPHOOK

ダイアログ ボックス用のメッセージを処理できる PageSetupHook フック プロシージャへのポインター。 PSD_ENABLEPAGESETUPHOOK フラグがFlags メンバーに設定されていない限り、このメンバーは無視されます。

lpfnPagePaintHook

種類: LPPAGEPAINTHOOK

サンプル ページが再描画されるたびにダイアログ ボックスからWM_PSD_* メッセージを受信する PagePaintHook フック プロシージャへのポインター。 メッセージを処理することで、フック プロシージャはサンプル ページの外観をカスタマイズできます。 PSD_ENABLEPAGEPAINTHOOK フラグがFlags メンバーに設定されていない限り、このメンバーは無視されます。

lpPageSetupTemplateName

種類: LPCTSTR

hInstance メンバーによって識別されるモジュール内のダイアログ ボックス テンプレート リソースの名前。 このテンプレートは、標準のダイアログ ボックス テンプレートに置き換えられます。 番号付きダイアログ ボックス リソースの場合、 lpPageSetupTemplateName には MAKEINTRESOURCE マクロによって返される値を指定できます。 PSD_ENABLEPAGESETUPTEMPLATE フラグがFlags メンバーに設定されていない限り、このメンバーは無視されます。

hPageSetupTemplate

種類: HGLOBAL

PSD_ENABLEPAGESETUPTEMPLATEHANDLE フラグが Flags メンバーに設定されている場合、hPageSetupTemplate はダイアログ ボックス テンプレートを含むメモリ オブジェクトへのハンドルです。

解説

PSD_INHUNDREDTHSOFMILLIMETERSフラグとPSD_INTHOUSANDTHSOFINCHES フラグが指定されていない場合、システムは既定のユーザー ロケールのLOCALE_IMEASURE値を照会して、余白の幅と用紙サイズの測定単位 (ミリメートルの 100 分の 1 または 10000 インチ) を決定します。

hDevNameshDevMode の両方に有効なハンドルがあり、DEVNAMES 構造体の wDeviceOffset メンバーで指定されたプリンター名が DEVMODE 構造体の dmDeviceName メンバーで指定された名前と同じでない場合、システムは既定で wDeviceOffset で指定された名前を使用します。

Note

commdlg.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして PAGESETUPDLG を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー commdlg.h (Windows.h を含む)

関連項目

共通ダイアログ ボックス ライブラリ

概念

Devmode

DEVNAMES

MAKEINTRESOURCE

その他のリソース

PagePaintHook

PageSetupDlg

PageSetupHook

リファレンス

WM_INITDIALOG