在对话框上放了一个listbox控件,注意是listbox而不是list control
怎么获得选中行的字符串,如在listbox上有三行:
abcd
efgh
1234
鼠标选中"efgh",怎么把该字符串保存在一个CString中?
用下面这样的语句:
 int pos=m_list.GetNextItem(-1,LVNI_SELECTED);
说是GetNextItem不是listbox的方法,估计是list control的方法
怎么做?应该是简单问题吧

解决方案 »

  1.   

    CListBox::GetText 
    int GetText( int nIndex, LPTSTR lpszBuffer ) const;void GetText( int nIndex, CString& rString ) const;这个函数可以获得指定项得字符放入buffer中
      

  2.   

    int i=m_list.GetCaretIndex();
    cstring s;
    m_list.GetText(i, s);
      

  3.   

    但是用GetText得到的字符串有换行符,怎么把这个换行符去掉?
    CString str;
    int pos = m_list.GetCurSel();
    m_list.GetText(pos,str);得到的字符串头尾有换行符,如字符串为"abcd",调试的时候显示:
    str{
        sbcd
        }
    怎么去掉?
      

  4.   

    其他的不知道,去换行还是知道的。str[str.GetLength()-1] = '\0';
      

  5.   

    编译一下果然:
    rror C2106: '=' : left operand must be l-value
      

  6.   

    哦,晕哦
    改成 str.SetAt(str.GetLength()-1, '\0');嘿嘿