CRichEditCtrl系列讲堂2 查找功能的实现

来源:互联网 发布:大明王朝 知乎 编辑:程序博客网 时间:2024/06/05 01:18
void FindText( CRicheditctrl & cRichEdit ,LPCTSTR pszText,BOOL bWholeWord,BOOL bCaseSen,BOOL bUp ){DWORD dwOptions = 0;if (bWholeWord)dwOptions |= FR_WHOLEWORD;if (bCaseSen)dwOptions |= FR_MATCHCASE;if (!bUp)dwOptions |= FR_DOWN;CHARRANGE crCurSel;m_cRichEdit.GetSel(crCurSel);FINDTEXTEXW  ftw;ZeroMemory(&ftw,sizeof(FINDTEXTEXW)); if (bUp) //注意,如果是向上查找的话,FINDTEXTEXW 中的chrg 应该是倒序 { ftw.chrg.cpMin = crCurSel.cpMin ; ftw.chrg.cpMax = 0; } else { ftw.chrg.cpMin = crCurSel.cpMax; ftw.chrg.cpMax = -1; }#ifdef _UNICODEftw.lpstrText = pszText;#elseUSES_CONVERSION;ftw.lpstrText = A2W(pszText);#endifif( -1 == cRichEdit.SendMessage(EM_FINDTEXTEXW,dwOptions,(LPARAM)&ftw) ){CString strText;strText.Format(_T("没有找到 \" %s \" "),pszText);MessageBox(strText);}else{cRichEdit.SetSel(ftw.chrgText);cRichEdit.SendMessage(EM_HIDESELECTION,0,0);}}
来源  http://blog.csdn.net/zaccheodong/article/details/7427509

原创粉丝点击