Vs2005 使用RichEdit2.0控件

来源:互联网 发布:死神的精确度 知乎 编辑:程序博客网 时间:2024/06/06 19:58

在基于对话框的MFC程序中使用该控件

1.    在dlg类中的构造函数中添加

       AfxInitRichEdit2();

如果添加到OnInitDialog()函数中,不能起到作用.必须在对话框建立的时候使用

2.    Setsel函数

CRichEditCtrl::SetSel

  void SetSel( long nStartChar, long nEndChar );

  参数:nStartChar 选择中的第一个字符的从零开始的索引。nEndChar 选择中的最后一个字符的从零开始的索引。可以用一个为0的开始索引和一个为-1的结束索引来调用SetSel。

3.    添加一个字符串到richedit

       m_SingleTransRichEdit.SetSel(-1,-1);

       m_SingleTransRichEdit.ReplaceSel((LPCTSTR)tmpstr);

4.    滚动到当前最后一行

m_SingleTransRichEdit.PostMessage(WM_VSCROLL, SB_BOTTOM,0);

5.    获得某行文本

获得指定行的开始索引

       int stidx = m_SingleTransRichEdit.LineIndex(5); //获得第5行的开始索引

       int edidx = m_SingleTransRichEdit.LineIndex(6); //获得第6行的开始索引

有了两个相邻行的开始索引,就可以获得这段文本

       m_SingleTransRichEdit.SetSel(stidx,edidx); //将选中第5行文本

       CString sel = m_SingleTransRichEdit.GetSelText(); //将选中的文本复制到变量中,

6.    获得文本总行数

       int nLineCount = m_SingleTransRichEdit.GetLineCount(); //获得行数

7.    获得最后一行内容

     int nLastLineIdx = m_SingleTransRichEdit.GetLineCount(); //获得最后一行的行号

     int stidx = m_SingleTransRichEdit.LineIndex(nLastLineIdx-1); //获得最后一行起点

     m_SingleTransRichEdit.SetSel(stidx,-1);            //选中最后一行所有内容

     CString sel = m_SingleTransRichEdit.GetSelText();         //获得文本

原创粉丝点击