如何获取CListCtrl当前选中的行

是放在鼠标点击事件中的,点一下某行,然后获取该行数据,其他已经实现,就是不知道用什么函数返回鼠标选中的行数,看了网上说的是GetCurSel()但是我编译说没有这个成员函... 是放在鼠标点击事件中的,点一下某行,然后获取该行数据,其他已经实现,就是不知道用什么函数返回鼠标选中的行数,看了网上说的是GetCurSel() 但是我编译说没有这个成员函数,纠结了,请知道的赐教下 展开
 我来答
百度网友96ffcf7
2015-08-03 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118725
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
方法一: 单选的情况下
GetNextItem(-1,LVIS_SELECTED);
方法二:单选的情况下
如果只允许单选,只需要调用成员函数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);
}
}
}
匿名用户
2011-08-07
展开全部
重载 CListCtrl 的OnNMClick()函数,
OnNMClickMylist(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLISTVIEW* pMListView=(NMLISTVIEW*) pNMHDR;
int nIndex = pMListView->iItem;
}
Mylist是自己定义的 CListCtrl的名字,nIndex就是当前选中行号,你也可以定义为全局变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灌胶点胶机制造37
2011-08-08 · TA获得超过120个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:248万
展开全部
GetCurSel() 这个是CCOMBOBOX里面的,
CString str;
POSITION pss=m_ListPage.GetFirstSelectedItemPosition();//pos就是行索引号,晕
int i=0;
if(pss==NULL)
AfxMessageBox("no item were selected!");
else
{
while(pss)//关键,如果你选择多行
{
int nIdx=-1;
nIdx = m_ListPage.GetNextSelectedItem(pss);//多少行--

if(nIdx >=0&&nIdx<m_ListPage.GetItemCount())
{
str = m_ListPage.GetItemText(nIdx,0);

}
i++//这样就能获取了--

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hzl880201
2012-06-20 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:116万
展开全部
int nHotItem = m_clist.GetHoteItem();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彳瞿亍
2011-08-06 · TA获得超过113个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:168万
展开全部
GetFirstSelectedItemPosition
追问
有是有这个函数,但是返回值怎么是个结构体?   我想要的是一个int啊,比如选中第一行,就返回0,第二行就返回1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式