在MSDN上有详细解说 下面就是个例子 CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL); ASSERT(pListCtrl != NULL);POSITION pos = pList->GetFirstSelectedItemPosition(); if (pos == NULL) TRACE0("No items were selected!\n"); else { while (pos) { int nItem = pList->GetNextSelectedItem(pos); TRACE1("Item %d was selected!\n", nItem); // you could do your own processing on nItem here } }
下面就是个例子
CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl != NULL);POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
int nItem = pList->GetNextSelectedItem(pos);
TRACE1("Item %d was selected!\n", nItem);
// you could do your own processing on nItem here
}
}
msdn上的这一段我也看到了,我的例子上不是写了嘛,但是不能实现。
to:ndy_w(王麻子):
你说的OnSelChange()是哪个类里的函数?
afx_msg void OnItemChanged(NMHDR* pNMHDR,LRESULT* pResult)
ON_NOTIFY(LVN_ITEMCHANGED,IDC_LIST,OnItemChanged)
OnItemChanged(NMHDR* pNMHDR,LRESULT* pResult)
{
NM_LISTVIEW* nmlist=(NM_LISTVIEW*)pNMHDR;
if(nmlist->uNewState&LVIS_SELECTED)
{
do the thing's you want
}
}
在上述函数的
if(nmlist->uNewState&LVIS_SELECTED)
{
int index=nmlist->iItem;
CString str=m_list.GetItemText(index,0); //选第index行的第0列
}
好像都忘记LVIS_FOCUSED了
能说详细点吗?
怎么写的是第一个选中的项目?
……
用GetNextItem找到第一个有焦点的条目再说