方法一:  单选的情况下

GetNextItem(-1,LVIS_SELECTED); 

方法二:单选的情况下

不知道你的CListCtrl是否允许多选,如果只允许单选,你只需要调用成员函数GetSelectionMark()就可以获取选中的行号,然后你再调用GetItemText()就可以获取选中行的文本。

方法三: 可以多选的情况下

 

CString str;

POSITION pos=list.GetFirstSelectedItemPosition(); //pos选中的首行位置

if(pss==NULL)

        AfxMessageBox(L"no item were selected!");

else

{

          while(pos)   //如果你选择多行

          {

                int nIdx=-1;

                nIdx= list.GetNextSelectedItem(pos);

       

                if(nIdx >=0&&nIdx<liste.GetItemCount())

                {

                        str =list.GetItemText(nIdx,0);

                }

        }

}