
int i=m_listGetSelectionMark();//获得选 中行的行标
CString s=m_listGetItemText(i,j);i是行,j是列。m_list是个list control 对象
鼠标选中的是哪一个表格,知道,通过可以使用下面代码:
POSITION sSelPos = NULL;
while(sSelPos = m_listctrlGetFirstSelectedItemPosition())
{
int nSelItem = -1;
nSelItem = m_listctrlGetNextSelectedItem(sSelPos);
if(nSelItem 〉= 0 && nSelItem〈m_listctrlGetItemCount())
{
这个nSelItem 就是我们要的DD
}
}
获得选中项:
方法一:
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);
}
}
方法二:
int i=m_oldinsGetCurSel(); //得到在第一个ListCtrl列表中选择项的索引
CString str;
if(i==LB_ERR) //表示没有选择
{
return;
}
方法三:
int i=m_listGetSelectionMark();
删除CListCtrl中选定的项:
POSITION pos;
int nIndex;
for(; pos= GetFirstSelectedItemPosition();)
{
nIndex = GetNextSelectedItem(pos);
DeleteItem(nIndex);
}
用程序选中某一行,使之选中
m_listctrlSetItemState(nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
不选中,取消选中之
m_listctrlSetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED);
设置背景颜色:
m_listSetBkColor( RGB( 100, 180, 250 ) );
设置字体颜色:
m_listSetTextBkColor( RGB( 100, 180, 250 ) );
int CListCtrl::GetSelectionMark();
返回值:返回选中索引号,否则返回-1
说明:这个函数可以处理单行的情况,但是有一个缺点,它会保留你上次选中的项,所以当你单击空白的地方时,还会返回上次选中的项。因此在使用快捷键实现删除 *** 作时需要注意这个情况,一般可以配合UINT GetItemState(int nItem,
UINT nMask) const;来判断。
单行:int nItem = m_listCtrlGetSelectionMark();
m_listCtrlDeleteItem(nItem);
添加一个单击列表的消息函数
ON_NOTIFY(NM_CLICK, IDC_MATRIX_LIST, &CXXDlg::OnNMClickList)
OnNMClickList()
{
UpdateData();
nListItem = -1;
LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
if(lpNMItemActivate != NULL)
{
if(lpNMItemActivate->iItem!=-1)
nListItem = lpNMItemActivate->iItem;
else
return;
}
STUDENT stu= (STUDENT )m_ListGetItemData(nListItem);
if(NULL==stu)
return;
else
commboxsetitemitem(commboxaddstring(stutel),n);
答题就是,有一个单击响应函数,将单击的行的信息取出来,读取相应的数据add到commbox中
GetFirstSelectedItemPosition获得的是选中元素的位置;
GetNextSelectedItem获得的是选中元素的索引;
这两个函数与你使用while和if是没有关系的,为什么可以获得Item的索引是由于ListCtrl已经封装好了,其内部实现就是通过这两个接口返回你选中元素的索引,你直接用就可以了。
一整行选中吗
//一整行选中吗?CListCtrl pListCtrl=(CListCtrl)GetDlgItem(IDC_LISTCTRL);
DWORD dwStyle=pListCtrl- >GetExtendedStyle();//获取style
dwStyle |= LVS_EX_FULLROWSELECT;//加上整行选中
pListCtrl- >SetExtendedStyle(dwStyle);//设置style
以上就是关于MFC的list control控件,如何得到某一行某列的字符串内容全部的内容,包括:MFC的list control控件,如何得到某一行某列的字符串内容、mfc 用listcontrol (Report)做了个表格,怎么选择表格中的一个格,并实现复制这个格中的内容。、MFC 如何列表一选就选中整行(CListCtrl)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)