MFC的list control控件,如何得到某一行某列的字符串内容

MFC的list control控件,如何得到某一行某列的字符串内容,第1张

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)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9591369.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存