查寻(替换)对话框在VC中的使用

查找(替换)对话框在VC中的使用
查找(替换)对话框在VC中的使用


1.弹出查找(替换)对话框
   CString findString;

   findReplaceDialog = new CFindReplaceDialog;

   findReplaceDialog->Create( TRUE, findString, "" );

   查寻(替换)对话框在VC中的使用


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步查找对话框就可以响应用户的鼠标点击事件了。