FINDREPLACEA 結構 (commdlg.h)
包含 FindText 和 ReplaceText 函式用來初始化 [尋找 和 取代 ] 對話框的資訊。 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 已註冊的訊息來指出使用者的輸入時,設定這些旗標。 這個成員可以是下列一或多個值。
值 | 意義 |
---|---|
|
如果在 FINDMSGSTRING 訊息中設定,表示對話框正在關閉。 當您收到已設定此旗標的訊息時, FindText 或 ReplaceText 函式所傳回的對話框句柄已不再有效。 |
|
如果設定,則會選取 [尋找] 對話框中方向單選按鈕的 [向下] 按鈕,指出您應該從目前的位置搜尋到文件結尾。 如果未設定,則會選取 [ 向上 ] 按鈕,因此您應該搜尋檔的開頭。 您可以設定此旗標來初始化對話框。 如果在 FINDMSGSTRING 訊息中設定,表示使用者的選取專案。 |
|
啟用 lpfnHook 成員中指定的攔截函式。 這個旗標只會用來初始化對話框。 |
|
指出 hInstance 和 lpTemplateName 成員會指定要取代預設範本的對話框範本。 這個旗標只會用來初始化對話框。 |
|
指出 hInstance 成員會識別包含預先載入對話框範本的數據區塊。 如果指定此旗標,系統會忽略 lpTemplateName 成員。 |
|
如果在 FINDMSGSTRING 訊息中設定,表示使用者按兩下 [尋找或取代] 對話框中的 [尋找下一步] 按鈕。 lpstrFindWhat 成員指定要搜尋的字串。 |
|
如果在初始化 [尋找 ] 對話框時設定,則會隱藏搜尋方向單選按鈕。 |
|
如果在初始化 [尋找 ] 或 [ 取代 ] 對話框時設定,則會隱藏 [ 比對大小寫 ] 複選框。 |
|
如果在初始化 [尋找] 或 [取代] 對話框時設定,則會隱藏 [僅比對整個 Word] 複選框。 |
|
如果設定,則會選取 [ 比對大小 寫] 複選框,指出搜尋應該區分大小寫。 如果未設定,則會取消選取複選框,因此搜尋應該不區分大小寫。 您可以設定此旗標來初始化對話框。 如果在 FINDMSGSTRING 訊息中設定,表示使用者的選取專案。 |
|
如果在初始化 [尋找 ] 或 [ 取代 ] 對話框時設定,請停用 [ 比對大小 寫] 複選框。 |
|
如果在初始化 [尋找 ] 對話框時設定,則會停用搜尋方向單選按鈕。 |
|
如果在初始化 [尋找] 或 [取代] 對話框時設定,請停用 [整個 Word] 複選框。 |
|
如果在 FINDMSGSTRING 訊息中設定,表示使用者已按兩下 [ 取代 ] 對話方塊中的[ 取代 ] 按鈕。 lpstrFindWhat 成員指定要取代的字串,而 lpstrReplaceWith 成員會指定取代字串。 |
|
如果在 FINDMSGSTRING 訊息中設定,表示使用者按兩下 [取代] 對話方塊中的[全部取代] 按鈕。 lpstrFindWhat 成員指定要取代的字串,而 lpstrReplaceWith 成員會指定取代字串。 |
|
導致對話框顯示 [ 說明 ] 按鈕。 hwndOwner 成員必須指定視窗,以接收當使用者按兩下 [說明] 按鈕時,對話框所傳送的 HELPMSGSTRING 已註冊訊息。 |
|
如果設定,則會選取 [僅比對整個 Word] 複選框,指出您應該只搜尋符合搜尋字串的整字。 如果未設定,則會取消選取複選框,因此您也應該搜尋符合搜尋字串的文字片段。 您可以設定此旗標來初始化對話框。 如果在 FINDMSGSTRING 訊息中設定,表示使用者的選取專案。 |
lpstrFindWhat
類型: LPTSTR
使用者在 [尋找內容 ] 編輯控件中輸入的搜尋字串。 您必須動態配置緩衝區,或使用全域或靜態陣列,使其不會在對話框關閉之前超出範圍。 緩衝區長度至少應為80個字元。 如果在初始化對話框時緩衝區包含字串,字串會顯示在 [尋找內容 ] 編輯控件中。 如果 FINDMSGSTRING 訊息指定 FR_FINDNEXT 旗標, lpstrFindWhat 包含 要搜尋的字串。 FR_DOWN、FR_WHOLEWORD和FR_MATCHCASE旗標表示搜尋的方向和類型。 如果 FINDMSGSTRING 訊息指定 FR_REPLACE 或 FR_REPLACE 旗標, lpstrFind What 包含要取代的字串。
lpstrReplaceWith
類型: LPTSTR
使用者在 [取代為 ] 編輯控件中輸入的取代字串。 您必須動態配置緩衝區或使用全域或靜態陣列,以便在對話框關閉之前不會超出範圍。 如果您在初始化對話框時緩衝區包含字串,字串會顯示在 [取代為 ] 編輯控件中。
如果 FINDMSGSTRING 訊息指定 FR_REPLACE 或 FR_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 訊息,攔截程式必須顯示對話框,否則不會顯示對話方塊。 若要這樣做,請先執行任何其他繪製作業,然後呼叫 ShowWindow 和 UpdateWindow 函式。
lpTemplateName
類型: LPCTSTR
hInstance 成員所識別模組中的對話框範本資源名稱。 此範本會取代標準對話框範本。 針對編號對話框資源,這可以是 MAKEINTRESOURCE 宏所傳回的值。 除非在 Flags 成員中設定FR_ENABLETEMPLATE旗標,否則會忽略此成員。
備註
注意
commdlg.h 標頭會將 FINDREPLACE 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | commdlg.h (包含 Windows.h) |
另請參閱
概念
參考