自定义查找或替换对话框

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

要自定义“查找或替换”对话框,可以使用以下任一方法:

*创建对话框时,在FINDREPLACE结构中指定值

*提供自定义模板

*提供一个挂钩程序

创建“查找或替换”对话框时,可以在FINDREPLACE结构的成员中设置标志,以隐藏或禁用任何搜索选项控件。例如,您可以将FR_NOMATCHCASE标志设置为禁用“匹配大小写”复选框,或将FR_HIDEMATCHCASE标志设置为隐藏。

您可以为“查找”或“替换”对话框提供自定义模板,例如,如果要包含应用程序唯一的其他控件。FindText ReplaceText功能使用您的自定义模板代替默认模板。

为“查找或替换”对话框提供自定义模板

1.通过修改FINDTEXT.DLG文件中指定的默认模板来创建自定义模板。在DLGS.H文件中定义了默认查找或替换对话框模板中使用的控制标识符。

2.使用FINDREPLACE结构启用模板,如下所示:

*如果您的自定义模板是应用程序或动态链接库中的资源,请在成员中设置FR_ENABLETEMPLATE标志。使用结构的的hInstancelpTemplateName成员来标识模块和资源名称。

-Or-

*如果您的自定义模板已经在内存中,请设置FR_ENABLETEMPLATEHANDLE标志。使用的hInstance成员来标识包含该模板的内存对象。

您可以为“查找或替换”对话框提供FRHookProc挂钩过程。挂钩过程可以处理发送到对话框的消息。如果您使用自定义模板定义其他控件,则必须提供一个挂钩过程来处理控件的输入。

为了启用查找或替换对话框的挂钩过程

1.在FINDREPLACE结构的成员中设置FR_ENABLEHOOK标志。

2.在lpfnHook成员中指定挂钩过程的地址。

处理其WM_INITDIALOG消息后,对话框过程向挂钩过程发送WM_INITDIALOG消息。此消息的【lParam的】参数是指向用于初始化对话框的FINDREPLACE结构的指针。

如果挂钩过程返回FALSE以响应WM_INITDIALOG消息,对话框将不会显示,除非挂钩过程显示。为此,首先执行任何其他油漆操作,然后调用ShowWindowUpdateWindow功能。以下代码提供了一个例子:

//现在我们显示对话框。

//现在我们显示对话框。

//现在我们显示对话框。

UpdateWindow(hDlg);

}