在WTL中使用CFindReplaceDialog,个人感觉要比MFC简单一些。
查找/替换对话框是非模态窗体,靠发送消息(CFindReplaceDialog::GetFindReplaceMsg())与窗体通信。
首先在需要响应“查找/替换”菜单或者按钮功能的地方添加如下代码,用来显示查找/替换对话框。
我是在某个按钮下响应“查找/替换”功能的。
然后在其父窗口类里添加一个消息映射:MESSAGE_HANDLER(CFindReplaceDialog::GetFindReplaceMsg(), OnFindReplaceMsg),使程序可以接收查找/替换对话框中发给父窗口的消息。
再定义一个LRESULT OnFindReplaceMsg(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);函数
OnFindReplaceMsg函数就是用来响应查找/替换对话框消息的。
在该函数里跟据CFindReplaceDialog的方法:GetFindString(),GetReplaceString(),SearchDown(),FindNext(),MatchCase(),MatchWholeWord(),ReplaceCurrent(),ReplaceAll(),IsTerminating()提供的信息来完成自己所需的工作。