如何得到CListCtrl中被选中的行号?
还有CListCtrl::GetSelectionMark这个函数有什么用?
还有CListCtrl::GetSelectionMark这个函数有什么用?
解决方案 »
- ActiveX 的嵌套问题
- 界面坐标和屏幕坐标
- WSARecv()发生WSAEWOULDBLOCK错误,如何得缓冲区的内容?
- 菜鸟求教一段代码
- 万分紧急,请各位高手帮忙,程序界面的显示与显示器分辨率的问题?多谢!!!
- 我们为什么要把数据成员定义成私有的或保护的,用内联函数来读写它?
- 接收端为什么会收到错误的数据
- 请微软专家来帮助,关于loadlibrary的问题!!!!!!!
- 请问:在线程函数中如何把得到的字符串传给主线程。。。在线调试,在线给分
- 请问如何解决 (NTDLL.DLL): 0xC0000005: Access Violation.
- 将一个工程资源文件中的Dialog 拷到另外一个工程中,有什么方法??
- 如何设置CListBox的Style??
int nIdx = m_AlarmShipList.GetNextItem(-1,LVIS_SELECTED);
nIdx即为选中的行号。
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上的例子如果选中多个,得到这些选中的行号
The selection is the item index from which a multiple selection starts.
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
}
}or int nIdx = m_List.GetNextItem(-1,LVNI_SELECTED);
while(nIdx != -1)
{
//nIdx为选中行索引
...
//继续搜索
nIdx = m_List.GetNextItem(nIdx,LVNI_SELECTED);
}or int currentItemNum = ListView_GetItemCount(m_hWnd);for(int i=0;i<currentItemNum;i++)
{
LV_ITEM lvi;
lvi.mask=LVIF_STATE;
lvi.iItem=i;
lvi.stateMask=0xFFFF;
ListView_GetItem(m_hWnd,&lvi);
DWORD ws = GetWindowLong(m_hWnd, GWL_STYLE);BOOL bSelected= (lvi.state & LVIS_SELECTED) || (lvi.state & LVIS_DROPHILITED);if(bSelected)
{
CString strIndex;
strIndex.Format(_T("Index = %d"),i);
AfxMessageBox(strIndex);
}
}
这个呢?