谢谢。

解决方案 »

  1.   

    先用GetCaretPos()得到位置
    再用CharFromPos( CPoint pt ) const得到第几个字符。
    例如有一控件CEdit m_Edit;
    方法是:
    CPoint pt = m_Edit.GetCaretPos();
    int nIndex = CharFromPos(pt);nIndex就是你要的第几个字符。
      

  2.   

    int nStartChar, nEndChar; m_edit1.GetSel(nStartChar, nEndChar);
    if(nStartChar == nEndChar)
    {
    //nStartChar或者nEndChar就是光标位置
    }
    else
    {
    //选中了从nStartChar到nEndChar的字符
    }
      

  3.   

    // 如何在CEditView中得到当前光标所在的行数和列数?
    int st, end;
    CEdit &edit = GetEditCtrl();
    edit.GetSel(st, end);
    int linechar;
    int row = 1;
    while(true)
    {
    linechar = edit.LineIndex(row);
    if(linechar > st || linechar == -1) break;
    row++;
    }
    linechar = edit.LineIndex(row-1);
    int col = st - linechar;