次の方法で共有


LPSETUPHOOKPROC コールバック関数 (commdlg.h)

PrintDlg 関数で使用されるアプリケーション定義またはライブラリ定義のコールバック関数。 フック プロシージャは、[ 印刷設定] ダイアログ ボックスの既定のダイアログ ボックス プロシージャを対象としたメッセージまたは通知を受け取ります。

LPSETUPHOOKPROC 型は、このコールバック関数へのポインターを定義します。 SetupHookProc は、アプリケーション定義またはライブラリ定義関数名のプレースホルダーです。

構文

LPSETUPHOOKPROC Lpsetuphookproc;

UINT_PTR Lpsetuphookproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

パラメーター

unnamedParam1

メッセージが意図されている [ 印刷設定 ] ダイアログ ボックスのハンドル。

unnamedParam2

受信するメッセージの識別子。

unnamedParam3

メッセージについての追加情報。 正確な意味は、 名前のないParam2 パラメーターの値によって異なります。

unnamedParam4

メッセージについての追加情報。 正確な意味は、 名前のないParam2 パラメーターの値によって異なります。

戻り値

フック プロシージャから 0 が返された場合、既定のダイアログ ボックス プロシージャによってメッセージが処理されます。

フック プロシージャが 0 以外の値を返す場合、既定のダイアログ ボックス プロシージャはメッセージを無視します。

注釈

[ 印刷設定] ダイアログ ボックスは、[ ページ設定 ] ダイアログ ボックスに置き換えられます。このダイアログ ボックスは、新しいアプリケーションで使用する必要があります。 ただし、互換性のために、 PrintDlg 関数は、[ 印刷設定 ] ダイアログ ボックスの表示を引き続きサポートします。 [印刷設定] ダイアログ ボックスの SetupHookProc フック プロシージャを指定して、ダイアログ ボックス プロシージャを対象としたメッセージまたは通知を処理できます。

フック プロシージャを有効にするには、ダイアログ作成関数に渡した PRINTDLG 構造体を使用します。 lpfnSetupHook メンバーでフック プロシージャのアドレスを指定し、Flags メンバーで PD_ENABLESETUPHOOK フラグを指定します。

既定のダイアログ ボックス プロシージャは、 WM_INITDIALOG メッセージをフック プロシージャに渡す前に処理します。 その他のすべてのメッセージについて、フック プロシージャは最初にメッセージを受け取ります。 次に、フック プロシージャの戻り値によって、既定のダイアログ プロシージャがメッセージを処理するか、無視するかを決定します。

フック プロシージャが WM_CTLCOLORDLG メッセージを処理する場合は、ダイアログ ボックスの背景を描画するための有効なブラシ ハンドルを返す必要があります。 一般に、フック プロシージャが WM_CTLCOLOR* メッセージを処理する場合は、指定したコントロールの背景を描画するために有効なブラシ ハンドルを返す必要があります。

フック プロシージャから EndDialog 関数を呼び出さないでください。 代わりに、フック プロシージャは PostMessage 関数を呼び出して、IDABORT 値を含むWM_COMMAND メッセージをダイアログ ボックス プロシージャに投稿できます。 IDABORT を投稿すると、ダイアログ ボックスが閉じ、ダイアログ ボックス関数が FALSE を返します。 フック プロシージャがダイアログ ボックスを閉じた理由を知る必要がある場合は、フック プロシージャとアプリケーションの間に独自の通信メカニズムを提供する必要があります。

共通ダイアログ ボックスの標準コントロールをサブクラス化できます。 ただし、ダイアログ ボックス プロシージャでは、コントロールをサブクラス化することもできます。 このため、フック プロシージャが WM_INITDIALOG メッセージを処理するときに、 コントロールをサブクラス化する必要があります。 これにより、サブクラス プロシージャは、ダイアログ ボックス プロシージャによって設定されたサブクラス プロシージャの前に、コントロール固有のメッセージを受け取ります。

要件

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

こちらもご覧ください

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

概念

EndDialog

PRINTDLG

PostMessage

PrintDlg

リファレンス

WM_CTLCOLORDLG

WM_INITDIALOG