您的位置:首页 > 其它

CFindReplaceDialog的使用

2009-10-26 11:01 435 查看
一、对话框的创建与显示

先在菜单中用ID号ID_EDIT_FIND添加一个“查找”菜单项,再用ClassWizard添加它的响应函数OnEditFind(),加入代码。
void CEditTestView::OnEditFind()  

   CFindReplaceDialog *m_pMyFindDialog= new CFindReplaceDialog();
   m_pMyFindDialog->Create(TRUE,NULL,NULL,FR_DOWN,this); //创建查找对话框
   m_pMyFindDialog->ShowWindow( SW_SHOW );    //显示对话框
}

FR_DOWN 如果设置,对话框中的“向下查找”单选按钮被选中,如果没有设置,“向上查找”单选按钮被选中;
FR_HIDEUPDOWN 不显示查找方向单选按钮;
FR_HIDEMATCHCASE 不显示区分大小写复选按钮;
FR_HIDEWHOLEWORD 不显示全字匹配复选按钮;
FR_MATCHCASE 使区分大小写复选按钮处于选中状态;
FR_WHOLEWORD 使全字匹配复选按钮处于选中状态;
FR_NOMATCHCASE 使区分大小写复选按钮处于禁止(变灰)状态;
FR_NOUPDOWN 使查找方向单选按钮处于禁止(变灰)状态;
FR_NOWHOLEWORD 使全字匹配复选按钮处于禁止(变灰)状态;
FR_SHOWHELP 在对话框中显示一个帮助按钮。

二、注册
头文件中,前面加入static UINT FindReplaceDialogMessage = ::RegisterWindowMessage(FINDMSGSTRING);以及公有函数LRESULT OnFindReplaceMessage(WPARAM wParam, LPARAM lParam);

源文件中加入ON_REGISTERED_MESSAGE(FindReplaceDialogMessage, OnFindReplaceMessage)

 

三、响应查找/替换消息
源文件中添加响应函数

LRESULT CEditTestView::OnFindReplaceMessage(WPARAM wParam, LPARAM lParam)
{
 CFindReplaceDialog* pFindReplace = CFindReplaceDialog::GetNotifier(lParam);
    ASSERT(pFindReplace != NULL);

    if (pFindReplace->IsTerminating())
    {
        pFindReplace = NULL;
    }
   else if (pFindReplace->FindNext())
   {
    if(FindText(pFindReplace->GetFindString(),pFindReplace->SearchDown()!=0 ? TRUE : FALSE,
   pFindReplace->MatchCase ? TRUE :FALSE))  //如果找到
  {   
  }
  else  //如果没有找到
  {
   MessageBox("查找完毕!");
  }

 return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null