<Return[R]><Top>

ReplaceText

Declare Function Api_ReplaceText& Lib "comdlg32" Alias "ReplaceTextA" (pFindreplace As FINDREPLACE)

Declare Function ReplaceText Lib "comdlg32" Alias "ReplaceTextA" (pFindreplace As FINDREPLACE) As Long

システムが定義したモードレスの[置換]ダイアログボックスを作成する。ユーザーはこのダイアログボックスを使って、検索文字列と置換文字列、および検索と置換の操作を制御するためのオプションを指定する。

パラメータ
lpfr
    [入出力]ダイアログボックスの初期化に使う情報を保持する 構造体へのポインタを指定する。

    このダイアログボックスはこの構造体を使って、ユーザーが入力した情報をアプリケーションへ送信する。

戻り値
    関数が成功すると、ダイアログボックスのウィンドウハンドルが返る。

    このウィンドウハンドルを使って、ダイアログボックスとの通信やクローズを行える。
    関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、CommDlgExtendedError 関数を使う。CommDlgExtendedError

    は、次のエラーコードのいずれかを返すことがある。
    CDERR_FINDRESFAILURE
    CDERR_MEMLOCKFAILURE
    CDERR_INITIALIZATION
    CDERR_NOHINSTANCE
    CDERR_LOADRESFAILURE
    CDERR_NOHOOK
    CDERR_LOADSTRFAILURE
    CDERR_NOTEMPLATE
    CDERR_LOCKRESFAILURE
    CDERR_STRUCTSIZE
    CDERR_MEMALLOCFAILURE
    FRERR_BUFFERLENGTHZERO

解説
    ReplaceText 関数は、置換操作を行わない。代わりに、 の登録メッセージを、ダイアログボックスのオーナーウィンドウのウィンドウプロシー

    ジャへ送信する。このダイアログボックスを作成すると、FINDREPLACE 構造体の hwndOwner メンバに、オーナーウィンドウのハンドルが

    格納される。
    ReplaceText 関数を呼び出す前に、RegisterWindowMessage 関数を呼び出して、FINDMSGSTRING メッセージの識別子を取得しなけ

    ればならない。ユーザーが[次を検索]ボタンや[すべて置換]ボタンなどをクリックしたり、ダイアログボックスを閉じようとしたときに、ダイ

    アログボックスプロシージャはこの識別子を使ってメッセージを送信する。FINDMSGSTRING メッセージの lParam パラメータは、

    FINDREPLACE 構造体へのポインタを保持する。 構造体の Flags メンバは、このメッセージを発生させたイベントを示す。この構造体の

    他のメンバは、ユーザーの入力を示す。
    [置換]ダイアログボックスを作成したときは、ダイアログボックス内で、TAB キーや ESC キーのようなキーボード入力が正しく処理されるこ

    とを保証するために、メインメッセージループ内で IsDialogMessage 関数も使わなければならない。IsDialogMessage は、このダイアログボッ

    クスがメッセージを処理したかどうかを示す 1 つの値を返す。
    [置換]ダイアログボックス用の FRHookProc フックプロシージャを提供することもできる。このフックプロシージャは、このダイアログボックス

    へ送信されたメッセージを処理できる。このダイアログボックスでフックプロシージャを有効にするには、FINDREPLACE 構造体の Flags メン

    バに FR_ENABLEHOOK フラグをセットし、lpfnHook メンバでそのフックプロシージャのアドレスを指定する。