ReplaceText

【勇芳软件工作室】汉化HomePreviousNext

ReplaceText函数创建一个系统定义的无模式对话框,允许用户指定要搜索的字符串和替换字符串,以及用于控制查找和替换操作的选项。

HWND ReplaceText(

LPFINDREPLACE 【LPFR】//具有初始化数据的结构指针
); 

参数

【LPFR】

指向FINDREPLACE结构的指针,其中包含用于初始化对话框的信息。该对话框使用此结构将有关用户输入的信息发送到您的应用程序。有关详细信息,请参阅以下备注部分。

返回值

如果函数成功,则返回值是对话框的窗口句柄。您可以使用窗口句柄与对话框通信或关闭它。

如果函数失败,返回值为NULL。要获取扩展错误信息,请调用CommDlgExtendedError功能,可以返回以下错误代码之一:

CDERR_FINDRESFAILURECDERR_MEMLOCKFAILURE
CDERR_INITIALIZATIONCDERR_NOHINSTANCE
CDERR_LOADRESFAILURECDERR_NOHOOK
CDERR_LOADSTRFAILURECDERR_NOTEMPLATE
CDERR_LOCKRESFAILURECDERR_STRUCTSIZE
CDERR_MEMALLOCFAILUREFRERR_BUFFERLENGTHZERO

备注

ReplaceText功能不执行文本替换操作。而是将对话框发送FINDMSGSTRING注册的消息给对话框的所有者窗口的窗口过程。创建对话框时,FINDREPLACE结构的hwndOwner成员标识所有者窗口。

在致电ReplaceText之前,您必须调用RegisterWindowMessage函数获取FINDMSGSTRING消息的标识符。当用户单击“查找下一个”,“替换”或“全部替换”按钮或对话框关闭时,对话框过程将使用此标识符发送消息。FINDMSGSTRING消息的【lParam的】参数包含指向FINDREPLACE结构的指针。此结构的成员指示导致消息的事件。结构的其他成员表示用户的输入。

如果创建替换对话框,还必须在应用程序的主消息循环中使用IsDialogMessage功能,以确保对话框正确处理键盘输入,例如TAB和ESC键。IsDialogMessage函数返回一个值,该值指示“替换”对话框是否处理了该消息。

您可以为“替换”对话框提供FRHookProc钩子过程。挂钩过程可以处理发送到对话框的消息。要启用挂钩过程,请在FINDREPLACE结构的成员中设置FR_ENABLEHOOK标志,并在lpfnHook成员中指定挂钩过程的地址。

也可以看看

CommDlgExtendedError,FINDREPLACE, FRHookProc, IsDialogMessage, RegisterWindowMessage, WM_CTLCOLORDLG