我怎样把EDIT控件中当前光标左边的苦干个字符取出来? 
如果通过 ::GetWindowText(hwnd,lpszWindowName,50); 的话,取出的是整个内容,而我要知道的是当前光标左边苦干个字符的内容是什么,应该怎么办?

解决方案 »

  1.   

    我想到的是分三步:
    首先getcoursorpos 得到光标位置
    其次getwindowtext得到edit里边的内容
    让后用mid得到你要得到的内容
      

  2.   

    用GetFocus获取焦点,再调用CEdit类中有关焦点的函数获取你要的值,比如从当前焦点到哪哪拷贝,得到的内容在处理就好了!
      

  3.   

    to:  wenkui(我心飞翔) getcoursorpos得到的坐标是in screen coordinates,它对后面的字符处理没有作用啊...怎么办?
      

  4.   

    SendMessage( 
      (HWND) hWnd,         // handle to destination window 
      EM_GETSEL,           // message to send
      (WPARAM) wParam,     // starting position (LPDWORD)
      (LPARAM) lParam      // ending position (LPDWORD)
    );
      

  5.   

    SendMessage (hwndEdit, EM_SETSEL, iStart, iEnd) ;
      

  6.   

    to:  ming6424(大笨蛋100分) EM_GETSEL 消息得到的是当前选中的文本的起始位置和结束位置, 我现在要得到的是当前光标左边的文本啊,不是一个意思吧?
      

  7.   

    本质上就是发EM_GETSEL消息。如果用MFC的话,CEdit已经封装好了。假设m_edit是一个CEdit类对象:int nStartChar = 0;
    int nEndChar = 0;
    m_edit.GetSel(nStartChar, nEndChar);CString str;
    m_edit.GetWindowText(str);
    str = str.Left(nStartChar);MessageBox(str);
      

  8.   

    to :  goodname008(卢培培,充电中......) 我试过了,调用
    SendMessage (hwndEdit, EM_SETSEL, iStart, iEnd) ;
    后,iStart和iEnd的值都为0啊?
      

  9.   

    你的EDIT中有文字吗?
    光标在最前面也会得到空串?注意获得时应该是EM_GETSEL。
      

  10.   

    UINT A1,A2;
    char buf[256];
    SendMessage(hEdit,EM_GETSEL,(LPARAM)&A1,(WPARAM)&A2);
    GetWindowText(hEdit,buf,A1+1);char *p=buf+A1-3;
      

  11.   

    em_GETTEXTEX
    比较详细。看msdn.