Windows 点击ListView中的Item中的响应

本文探讨了如何在Windows应用中,修复ListView控件点击事件的bug,即点击不同列时行数显示不准确的问题。通过代码片段展示了如何正确处理NM_CLICK通知,并定位点击的行和列,以达到预期效果。
摘要由CSDN通过智能技术生成

点击跳转到视频教程

Gitee代码链接(有100多MB)

新增加的文件:AddCallBackOfClickedListItem.cpp

增加的功能:点击Item时,显示点击的是哪一行哪一列
此功能的实现还有Bug:只有点击第0列时,行数和列数才显示正常。点击其他列时,行数显示都为 -1

和上一节程序 Windows 使用Button动态给ListView控件增加和删除一行 的变化是,增加了下面的case处理

case WM_NOTIFY:
{
	NMHDR* pNmHdr = (NMHDR*)lParam;
	if (pNmHdr->idFrom == IDC_LIST_1)
	{
		if (pNmHdr->code == NM_CLICK) 
		{
			LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE)lParam;
			TCHAR szText[128] = {0};
			_stprintf(szText, _T("点击的是 %d 行, %d 列"), lpnmitem->iItem, lpnmitem->iSubItem);
			MessageBox(hWnd, szText, _T("这是标题"), MB_OK);
		}
	}
}
break;

只有点击第0列时,行数和列数才显示正常
在这里插入图片描述
点击第二列时,行数显示不正常
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值