LPFRHOOKPROC コールバック関数 (commdlg.h)
[ 検索 または 置換 ] ダイアログ ボックスの既定のダイアログ ボックス プロシージャを対象としたメッセージまたは通知を受信します。 FRHookProc フック プロシージャは、FindText 関数または ReplaceText 関数と共に使用される、アプリケーション定義またはライブラリ定義のコールバック関数です。
LPFRHOOKPROC 型は、このコールバック関数へのポインターを定義します。 FRHookProc は、アプリケーション定義関数名のプレースホルダーです。
構文
LPFRHOOKPROC Lpfrhookproc;
UINT_PTR Lpfrhookproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
パラメーター
unnamedParam1
メッセージが意図されている [ 検索 または 置換 ] ダイアログ ボックスへのハンドル。
unnamedParam2
受信するメッセージの識別子。
unnamedParam3
メッセージについての追加情報。 正確な意味は、 名前のないParam2 パラメーターの値によって異なります。
unnamedParam4
メッセージについての追加情報。 正確な意味は、 名前のないParam2 パラメーターの値によって異なります。
unnamedParam2 パラメーターがWM_INITDIALOG メッセージを示す場合、unnamedParam4 は、ダイアログ ボックスの作成時に指定された値を含む FINDREPLACE 構造体へのポインターです。
戻り値
フック プロシージャから 0 が返された場合、既定のダイアログ ボックス プロシージャによってメッセージが処理されます。
フック プロシージャが 0 以外の値を返す場合、既定のダイアログ ボックス プロシージャはメッセージを無視します。
注釈
FindText 関数または ReplaceText 関数を使用して [検索] または [置換] ダイアログ ボックスを作成する場合は、FRHookProc フック プロシージャを指定して、ダイアログ ボックス プロシージャを対象としたメッセージまたは通知を処理できます。 フック プロシージャを有効にするには、ダイアログ作成関数に渡した FINDREPLACE 構造体を使用します。 lpfnHook メンバーでフック プロシージャのアドレスを指定し、Flags メンバーにFR_ENABLEHOOKフラグを指定します。
既定のダイアログ ボックス プロシージャは、 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 を含む) |
こちらもご覧ください
概念
リファレンス