我第一次做C,能给个具体的代码吗,功能是分别在两个LABEL中显示行和列的坐标.
PosFromChar  GetSel() GetCaretPos()方法虽然知道但是不知道该怎么用.代码怎么写.

解决方案 »

  1.   

    GetRichEditCtrl().GetSel(lStartChar, lEndChar);
    //行取得
    iRow = GetRichEditCtrl().LineFromChar(lStartChar);
    //列取得
    iCol = lStartChar-GetRichEditCtrl().LineIndex(iRow);
      

  2.   

    初始定义:
    int iRow = 0;
    int iCol = 0;
    long lStartChar = 0;
    long lEndChar = 0;
      

  3.   

    GetRichEditCtrl()的地方可以用你那个edit控件的句柄代替
      

  4.   

    CPoint p = ((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))->PosFromChar(0);
    无论光标在哪都得到的都是1,1;
      

  5.   

    用我那个方法就行拉
    用((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))代替我那里面的GetRichEditCtrl()就可以了
      

  6.   

    int iRow = 0;
    int iCol = 0;
    long lStartChar = 0;
    long lEndChar = 0;
    ((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG)).GetSel(lStartChar, lEndChar);
    //行取得
    iRow = ((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG)).LineFromChar(lStartChar);
    //列取得
    iCol = lStartChar-((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG)).LineIndex(iRow);
    是这样吗,编译都不过
    说是左侧的构造体共用体什么的不存在.
      

  7.   

    如果是((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))->的错误,那么CPoint p = ((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))->PosFromChar(0);也应该有错误,可是没错
      

  8.   

    那把那个控件定义成变量!~
             int nStart = 0;
    int nEnd = 0;
    int iRow  = 0;
    int iCol = 0;
    m_editTest.GetSel(nStart,nEnd);
    // Focusの行を取得
    iRow = m_editTest.LineFromChar(nStart);
    // Focusの桁を取得
    iCol = nStart - m_editTest.LineIndex(iRow);
    在我机器上运行成功,m_editTest为那个控件
      

  9.   

    对了,((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))这个是个指针当然不行了,要变成
    ((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))->LineFromChar(lStartChar);
    其他点的地方也要这么写
      

  10.   

    谢谢已经成功了,我想问一下((CEdit*)GetDlgItem(IDC_EDIT_EDITMSG))->GetSel(lStartChar, lEndChar);的意思尤其是那两个参数是什么意思.
      

  11.   

    对不起还有一个问题,LineIndex(iRow)是什么意思.
      

  12.   

    Retrieves the character index of a line within a multiple-line edit control.