我先子类化了cedit,处理他的wm_onchar消息但是我不知道怎么得到究竟是在哪一行输入的啊
不知道各位高手有没有其他的办法

解决方案 »

  1.   

    最笨的办法,我不断改变CEdit的大小,如果大小适中的话,他会在你输入完你想输的字数后换行的
      

  2.   

    写一个限制条件一旦输入的字符到了那么多了,就发一个
    换行的消息给CEdit不就可以了吗?
      

  3.   

    得到光标的行数、列数,hFocus为edit或richedit的HWND
    int LineIndex,LineNum,SelStar,ColNum;
    LineNum =  ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数
    LineIndex = ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);
    SelStar = (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));
    ColNum = SelStar - LineIndex;//列数
    -----------------
    CPoint point;
    GetCaretPos(&point);ScreenToClient(&point);
    int pos = CharFromPos(point);int line = HIWORD(pos);   // The line index 
    int index = LOWORD(pos);  // The character index