QQ登录

只需一步,快速开始

90上位机VC MFC富编辑框文字查找与标识

[ 复制链接 ]

90上位机VC MFC富编辑框文字查找与标识

90上位机VC MFC富编辑框文字查找与标识
90上位机VC MFC富编辑框文字查找与标识
功能展示
系统自带的TXT编辑器都有查找字符功能,我们当前例程也来用CRichEditCtrl控件来实现文字的查找与标识 功能,用户点击SEARCH后,例程会将找到的文本选中,效果如图
要点提示
例程主要是通过Cstring类的Find()函数实现查找字符功能,另外还配有RichEditCtrl类的SetSel(),LineFromChar(),lineindex()函数来实现; SetSel()将控件中指定字符设置为选中状态; LineFromChar(),是根据字符在控件中的索引,获得所在行的索引, lineindex()用于获得字符在本行的索引数; Find()用于查找字符,并返回字符的位置索引,根据这个位置索引可以计算出下一次开始查找的位置;
实现功能
1.新建基于对话框的应用程序,添加函数AfxInitRichEdit();初始化富编辑框控件
2.拖拽一富编号框控件,并关联变量CRichEditCtrl m_RichEdit;一编辑框控件ID为IDC_EDIT1,再添加 一按钮控件,关联函数OnSearch();
3.添加三个变量用于保存查找的索引值及文本 private: CString m_sText; intm_nStartPos;
int m_nLineIndex;
4.在初始化时初始化变量并加载些文字到富编辑框中 CStdioFile file;file.Open("ForTest.txt",CFile::modeRead); CString str;
  while(1) {
  DWORDi=file.ReadString(str);
  if(i==0)
  goto end;//已读取完
  m_sText+=str;
  m_sText+="\n";}
end:m_RichEdit.SetWindowText(m_sText);
  m_nLineIndex=0;
  m_nStartPos=0;
ForTest.txt为保存在工程根目录的文本文件,里面有保存为测试用的文字 ;
最后是实现查找按钮的查找功能
void CGkbc8Dlg::OnSearch()
{
  m_RichEdit.LineScroll(-m_nLineIndex);
  CString strfind;
  GetDlgItem(IDC_EDIT1)->GetWindowText(strfind);
  intret=m_sText.Find(strfind,m_nStartPos);
  intstrlen=strfind.GetLength();
  m_RichEdit.SetSel(ret,ret+strlen);
  m_nStartPos=ret+strlen;
  m_nLineIndex=m_RichEdit.LineFromChar(ret);
  intlinepos=m_RichEdit.LineIndex(m_nLineIndex);
  m_RichEdit.LineScroll(m_nLineIndex);
  m_RichEdit.SetFocus();
}
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:90.上位机VC MFC富编辑框文字查找与标识.rar 
文件大小:136.28 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索