FINDREPLACEA 結構 (commdlg.h)

包含 FindTextReplaceText 函式用來初始化 [尋找取代 ] 對話框的資訊。 FINDMSGSTRING 已註冊的訊息會使用此結構,將使用者的搜尋或取代輸入傳遞至 [尋找取代] 對話框的擁有者視窗。

語法

typedef struct tagFINDREPLACEA {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HINSTANCE    hInstance;
  DWORD        Flags;
  LPSTR        lpstrFindWhat;
  LPSTR        lpstrReplaceWith;
  WORD         wFindWhatLen;
  WORD         wReplaceWithLen;
  LPARAM       lCustData;
  LPFRHOOKPROC lpfnHook;
  LPCSTR       lpTemplateName;
} FINDREPLACEA, *LPFINDREPLACEA;

成員

lStructSize

類型: DWORD

結構的長度,以位元組為單位。

hwndOwner

類型: HWND

擁有對話框之視窗的句柄。 指定視窗的視窗程式會從對話方塊接收 FINDMSGSTRING 訊息。 此成員可以是任何有效的視窗句柄,但不得為 NULL

hInstance

類型: HINSTANCE

如果在 Flags 中設定FR_ENABLETEMPLATEHANDLE旗標,hInstance 是包含對話框範本的記憶體物件的句柄。 如果已設定 FR_ENABLETEMPLATE 旗標, hInstance 是模組句柄,其中包含 由 lpTemplateName 成員命名的對話框範本。 如果未設定任何旗標,則會忽略此成員。

Flags

類型: DWORD

一組可用來初始化對話框的位旗標。 對話框會在傳送 FINDMSGSTRING 已註冊的訊息來指出使用者的輸入時,設定這些旗標。 這個成員可以是下列一或多個值。

意義
FR_DIALOGTERM
0x00000040
如果在 FINDMSGSTRING 訊息中設定,表示對話框正在關閉。 當您收到已設定此旗標的訊息時, FindTextReplaceText 函式所傳回的對話框句柄已不再有效。
FR_DOWN
0x00000001
如果設定,則會選取 [尋找] 對話框中方向單選按鈕的 [向下] 按鈕,指出您應該從目前的位置搜尋到文件結尾。 如果未設定,則會選取 [ 向上 ] 按鈕,因此您應該搜尋檔的開頭。 您可以設定此旗標來初始化對話框。 如果在 FINDMSGSTRING 訊息中設定,表示使用者的選取專案。
FR_ENABLEHOOK
0x00000100
啟用 lpfnHook 成員中指定的攔截函式。 這個旗標只會用來初始化對話框。
FR_ENABLETEMPLATE
0x00000200
指出 hInstancelpTemplateName 成員會指定要取代預設範本的對話框範本。 這個旗標只會用來初始化對話框。
FR_ENABLETEMPLATEHANDLE
0x00002000
指出 hInstance 成員會識別包含預先載入對話框範本的數據區塊。 如果指定此旗標,系統會忽略 lpTemplateName 成員。
FR_FINDNEXT
0x00000008
如果在 FINDMSGSTRING 訊息中設定,表示使用者按兩下 [尋找取代] 對話框中的 [尋找下一步] 按鈕。 lpstrFindWhat 成員指定要搜尋的字串。
FR_HIDEUPDOWN
0x00004000
如果在初始化 [尋找 ] 對話框時設定,則會隱藏搜尋方向單選按鈕。
FR_HIDEMATCHCASE
0x00008000
如果在初始化 [尋找 ] 或 [ 取代 ] 對話框時設定,則會隱藏 [ 比對大小寫 ] 複選框。
FR_HIDEWHOLEWORD
0x00010000
如果在初始化 [尋找] 或 [取代] 對話框時設定,則會隱藏 [僅比對整個 Word] 複選框。
FR_MATCHCASE
0x00000004
如果設定,則會選取 [ 比對大小 寫] 複選框,指出搜尋應該區分大小寫。 如果未設定,則會取消選取複選框,因此搜尋應該不區分大小寫。 您可以設定此旗標來初始化對話框。 如果在 FINDMSGSTRING 訊息中設定,表示使用者的選取專案。
FR_NOMATCHCASE
0x00000800
如果在初始化 [尋找 ] 或 [ 取代 ] 對話框時設定,請停用 [ 比對大小 寫] 複選框。
FR_NOUPDOWN
0x00000400
如果在初始化 [尋找 ] 對話框時設定,則會停用搜尋方向單選按鈕。
FR_NOWHOLEWORD
0x00001000
如果在初始化 [尋找] 或 [取代] 對話框時設定,請停用 [整個 Word] 複選框。
FR_REPLACE
0x00000010
如果在 FINDMSGSTRING 訊息中設定,表示使用者已按兩下 [ 取代 ] 對話方塊中的[ 取代 ] 按鈕。 lpstrFindWhat 成員指定要取代的字串,而 lpstrReplaceWith 成員會指定取代字串。
FR_REPLACEALL
0x00000020
如果在 FINDMSGSTRING 訊息中設定,表示使用者按兩下 [取代] 對話方塊中的[全部取代] 按鈕。 lpstrFindWhat 成員指定要取代的字串,而 lpstrReplaceWith 成員會指定取代字串。
FR_SHOWHELP
0x00000080
導致對話框顯示 [ 說明 ] 按鈕。 hwndOwner 成員必須指定視窗,以接收當使用者按兩下 [說明] 按鈕時,對話框所傳送的 HELPMSGSTRING 已註冊訊息。
FR_WHOLEWORD
0x00000002
如果設定,則會選取 [僅比對整個 Word] 複選框,指出您應該只搜尋符合搜尋字串的整字。 如果未設定,則會取消選取複選框,因此您也應該搜尋符合搜尋字串的文字片段。 您可以設定此旗標來初始化對話框。 如果在 FINDMSGSTRING 訊息中設定,表示使用者的選取專案。

lpstrFindWhat

類型: LPTSTR

使用者在 [尋找內容 ] 編輯控件中輸入的搜尋字串。 您必須動態配置緩衝區,或使用全域或靜態陣列,使其不會在對話框關閉之前超出範圍。 緩衝區長度至少應為80個字元。 如果在初始化對話框時緩衝區包含字串,字串會顯示在 [尋找內容 ] 編輯控件中。 如果 FINDMSGSTRING 訊息指定 FR_FINDNEXT 旗標, lpstrFindWhat 包含 要搜尋的字串。 FR_DOWNFR_WHOLEWORDFR_MATCHCASE旗標表示搜尋的方向和類型。 如果 FINDMSGSTRING 訊息指定 FR_REPLACEFR_REPLACE 旗標, lpstrFind What 包含要取代的字串。

lpstrReplaceWith

類型: LPTSTR

使用者在 [取代為 ] 編輯控件中輸入的取代字串。 您必須動態配置緩衝區或使用全域或靜態陣列,以便在對話框關閉之前不會超出範圍。 如果您在初始化對話框時緩衝區包含字串,字串會顯示在 [取代為 ] 編輯控件中。

如果 FINDMSGSTRING 訊息指定 FR_REPLACEFR_REPLACEALL 旗標, lpstrReplaceWith 會包含取代字串 。

FindText 函式會忽略這個成員。

wFindWhatLen

類型: WORD

lpstrFindWhat 成員所指向之緩衝區的長度,以位元組為單位。

wReplaceWithLen

類型: WORD

lpstrReplaceWith 成員所指向之緩衝區的長度,以位元組為單位。

lCustData

類型: LPARAM

系統傳遞至 lpfnHook 成員所識別的攔截程式的應用程式定義數據。 當系統將 WM_INITDIALOG 訊息傳送至攔截程式時,訊息的 lParam 參數是建立對話框時所指定 FINDREPLACE 結構的指標。 攔截程式可以使用這個指標來取得 lCustData 值。

lpfnHook

類型: LPFRHOOKPROC

FRHookProc 攔截程式的指標,可處理用於對話框的訊息。 除非在 Flags 成員中設定FR_ENABLEHOOK旗標,否則會忽略這個成員。 如果攔截程式傳回 FALSE 以回應 WM_INITDIALOG 訊息,攔截程式必須顯示對話框,否則不會顯示對話方塊。 若要這樣做,請先執行任何其他繪製作業,然後呼叫 ShowWindowUpdateWindow 函式。

lpTemplateName

類型: LPCTSTR

hInstance 成員所識別模組中的對話框範本資源名稱。 此範本會取代標準對話框範本。 針對編號對話框資源,這可以是 MAKEINTRESOURCE 宏所傳回的值。 除非在 Flags 成員中設定FR_ENABLETEMPLATE旗標,否則會忽略此成員。

備註

注意

commdlg.h 標頭會將 FINDREPLACE 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 commdlg.h (包含 Windows.h)

另請參閱

通用對話框連結庫

概念

FRHookProc

FindText

MAKEINTRESOURCE

參考

ReplaceText

ShowWindow

WM_INITDIALOG