列表中选择的行号 列号

本文介绍了一个在MFC中正确获取列表视图中点击行号的方法,避免了使用GetSelectionMark()可能产生的-1错误。通过在NM_CLICK事件响应函数中利用NM_LISTVIEW结构体的iItem成员,可以准确地获取到用户点击的行号。
摘要由CSDN通过智能技术生成

1.注意,如下代码无法得到行号,返回经常返回-1

int iSelRow = m_listProcTest.GetSelectionMark(); //返回列表中选择的行数

 

应该在列表的点击事件的响应函数中:

void CDlgTest::OnNMClickListProcesstest(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: Add your control notification handler code here
	*pResult = 0;

	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->iItem != -1)
	{
		CString str;
		str.Format(TEXT("单击的是第%d行第%d列"),pNMListView->iItem, pNMListView->iSubItem);
		//AfxMessageBox(str);
		m_RowNum = pNMListView->iItem;
		m_colNum = pNMListView->iSubItem;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值