查找(替换)对话框在VC中的使用
1.弹出查找(替换)对话框
CString findString;
findReplaceDialog = new CFindReplaceDialog;
findReplaceDialog->Create( TRUE, findString, "" );
2.如何实现在点击上图对话框中的“查找下一个”按钮时,查找指定字符?
实现需要进行以下几步:
①自定义一个消息,这个消息必须调用API函数RegisterWindowMessage取得,并且必须指定为FINDMSGSTRING,它是一个宏定义的常量。
UINT findMessage = ::RegisterWindowMessage( FINDMSGSTRING );
② 窗口类中定义:
afx_msg LONG FindFun( UINT wParam, LONG lParam );
③窗口类实现:
LONG xxx类::FindFun( UINT wParam, LONG lParam )
在此中可任意调用findReplaceDialog对话框的类成员函数,用以判断用户在对话框中设置了哪些查询选项和点击了哪个按钮。
BOOL SearchDown() const; // TRUE 向下, FALSE 向上
BOOL FindNext() const; // TRUE 查找下一个
BOOL MatchCase() const; // TRUE 区分大小写
BOOL MatchWholeWord() const; // TRUE 全字匹配
BOOL ReplaceCurrent() const; // TRUE 替换
BOOL ReplaceAll() const; // TRUE 全部替换
④BEGIN_MESSAGE_MAP()
ON_REGISTERED_MESSAGE( findMessage, FindFun )
...
END_MESSAGE_MAP()
经过以上4步查找对话框就可以响应用户的鼠标点击事件了。