关于如何在CRichEdit中搜索某一字符串? 本人想在CRichEdit控件中"搜索/替换"某一字符串,例如把搜索"AAA"替换为"BBB"。请知道处理方法的朋友多多赐教,最好有一些参考代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CRichEditCtrl *pRichEdit = (CRichEditCtrl*)GetDlgItem( IDC_EDITOR_TEXT ); FINDTEXTEX aaa; aaa.chrg.cpMax = -1; aaa.chrg.cpMin = 0; aaa.lpstrText = "ef"; long lPos = pRichEdit->FindText(FR_WHOLEWORD, &aaa);这段是我的处理方式"ef"字符串在RichEdit中是有的,但是long lPos = pRichEdit->FindText(FR_WHOLEWORD, &aaa);返回一直是-1; 我现在是能够找到"ef"了,但是对于RichEdit中有多个"ef"时为什么总是找到最上面的那个"ef"呢,若要继续往下找应该如何处理呢。请高手指教!!!! aaa.chrg.cpMax = aaa.chrgText.cpMax aaa.chrg.cpMin = aaa.chrgText.cpMin试试。其实就是把搜索起始位置改一下 我做了2个button:Serach/Serach Next;分别执行下列代码Serach: aaa.chrg.cpMin = 0; aaa.chrg.cpMax = -1; aaa.lpstrText = "ef"; long lPos = m_RichEdit.FindText(FR_MATCHCASE, &aaa); if (lPos == -1) { MessageBox("Fail to find the string ef!"); } else { m_RichEdit.SetSel(lPos,lPos+2); m_RichEdit.SetFocus(); }Serach Next: aaa.chrg.cpMax = aaa.chrgText.cpMax; aaa.chrg.cpMin = aaa.chrgText.cpMin; aaa.lpstrText = "ef"; long lPos = m_RichEdit.FindText(FR_MATCHCASE, &aaa); if (lPos == -1) { MessageBox("Fail to find the string ef!"); } else { m_RichEdit.SetSel(lPos,lPos+2); m_RichEdit.SetFocus(); }定义全局变量FINDTEXTEX aaa;执行Serach时总是找到最上面的执行Serach Next时也没有找到下一个"ef",也是找到"ef".我debug Serach Next按钮时 aaa.chrg.cpMax = aaa.chrgText.cpMax; aaa.chrg.cpMin = aaa.chrgText.cpMin; 值已经修改请指教!! 在CString中依次提取多个数字 BCB2009和VC2010目录冲突 COM自动化非VARIANT类型参数传递的问题 [兔子党]国庆散个分 VC6.0编译成功,却提示无法执行程序 关于音乐播放的问题 如何同步修改ListBox内容? 请问如何将采集来的图象进行放大或局部放大,对比色调整,简单的剪辑修改,进行文字注释。 普通用户怎么在系统盘创建文件 新线程访问 局部类 问题 关于VC的向导控件问题 关于移除USB会不会有多种DBT_**的值?
FINDTEXTEX aaa;
aaa.chrg.cpMax = -1;
aaa.chrg.cpMin = 0;
aaa.lpstrText = "ef";
long lPos = pRichEdit->FindText(FR_WHOLEWORD, &aaa);这段是我的处理方式"ef"字符串在RichEdit中是有的,但是long lPos = pRichEdit->FindText(FR_WHOLEWORD, &aaa);
返回一直是-1;
aaa.chrg.cpMin = aaa.chrgText.cpMin
试试。
其实就是把搜索起始位置改一下
分别执行下列代码
Serach:
aaa.chrg.cpMin = 0;
aaa.chrg.cpMax = -1;
aaa.lpstrText = "ef";
long lPos = m_RichEdit.FindText(FR_MATCHCASE, &aaa);
if (lPos == -1)
{
MessageBox("Fail to find the string ef!");
}
else
{
m_RichEdit.SetSel(lPos,lPos+2);
m_RichEdit.SetFocus();
}
Serach Next:
aaa.chrg.cpMax = aaa.chrgText.cpMax;
aaa.chrg.cpMin = aaa.chrgText.cpMin;
aaa.lpstrText = "ef";
long lPos = m_RichEdit.FindText(FR_MATCHCASE, &aaa);
if (lPos == -1)
{
MessageBox("Fail to find the string ef!");
}
else
{
m_RichEdit.SetSel(lPos,lPos+2);
m_RichEdit.SetFocus();
}定义全局变量FINDTEXTEX aaa;
执行Serach时总是找到最上面的
执行Serach Next时也没有找到下一个"ef",也是找到"ef".我debug Serach Next按钮时
aaa.chrg.cpMax = aaa.chrgText.cpMax;
aaa.chrg.cpMin = aaa.chrgText.cpMin; 值已经修改请指教!!