我记得是CEdit类有这个功能,可惜CRichEditCtrl类没有。
曾分者您就免了吧!!

解决方案 »

  1.   

    没做过, 不过我认为应该能实现,你可以得到字符的高度, 然后得到鼠标在RichEdit中的位置,我用类似的方法定位过调试器的图标
      

  2.   

    CRichEditCtrl* m_rt=(CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT1);
    CHARRANGE cr;
    m_rt->GetSel(cr);
    int a=cr.cpMax;
    int b=cr.cpMin;
    int m_c(0),m_l(0);///////m_c=行
    for(int i=0;i<m_rt->GetLineCount();i++)
    {
    int g=m_rt->LineIndex(i);
    if(a>=g)
    m_c++;
    }//试试..
      

  3.   

    楼上的,光是GetSel(cr);这一行就不行!!
    因为假如点击鼠标右键后光标是不跟着鼠标走的,再说加入我要是想在鼠标移动消息里处理的话,那你的方法就更行不通了!
      

  4.   

    你鼠标位置下的字符串行数,是不是楼上的意思?就是说从鼠标当前行开始到你的结束后之间所有的行数?如果是,那就不用楼上那么麻烦了。思路还是楼上的,只是不用循环,直接用最大行-所在行的索引不就成了。
    GetLineCount()获得总共行数
    GetSelText()获得鼠标选择字符
    GetLine()获得鼠标选择所在行数
      

  5.   

    我只想用一个鼠标的CPoint,来得到行数,不是选择的!!!跟光标无关!!!
      

  6.   

    用GetTextMetrics()得到字符的高度
    Mouse CPoint可以得到Edit上端边框到mouse 的距离,
    这样可以得出可见的行数
    在用GetFirstVisibleLine(),
    相加可以得出mouse所在的行数
      

  7.   

    算了,我看CSDN是每人能回答此问题了,我还是用BCG的EDITVIEW吧!结贴
      

  8.   

    给你发的收到了吧,好好研究一下吧,挺简单的,在《Visual C++程序设计技巧与实例》(中国铁路出版社)里讲的很细,如果有什么问题可以到书店里look一下