MFC-NM_CLICK鼠标左键点击CListCtrl控件消息
NM_CLICK 是鼠标左键点击CListCtrl控件客户区时激发的消息
添加消息函数
选中控件-->
void CCListCtrlDlg::OnNMClickList4(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); //NM_CLICK 这个是鼠标左键点击CListCtrl控件客户区时激发的消息 int han = pNMItemActivate->iItem; //获取单击的行号 /* 【最好设置:LVS_EX_FULLROWSELECT //选择整行;否则只有单击项头才有效】 */ str.Format(_T("行号han=%d\r\n"), han); OutputDebugString(str); int lie = pNMItemActivate->iSubItem; //获取单击的列号 str.Format(_T("列号lie=%d\r\n"), lie); OutputDebugString(str); UINT ns=pNMItemActivate->uNewState; str.Format(_T("新状态ns=%d\r\n"), ns); OutputDebugString(str); UINT olds = pNMItemActivate->uOldState; str.Format(_T("老状态olds=%d\r\n"), olds); OutputDebugString(str); /* 我的新状态和老状态的返回值 始终=0 不知道什么原因 有知道的请评论区留言 */ POINT point = pNMItemActivate->ptAction; //获取鼠标点击时的坐标 //以控件客户区为坐标系 str.Format(_T("point.x=%d point.y=%d\r\n"), point.x, point.y); OutputDebugString(str); int nRow; CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST4); //窗口句柄转换成类指针 CPoint ptClicked = pNMItemActivate->ptAction; // 获取鼠标单击位置 nRow = pListCtrl->HitTest(ptClicked); // 获取鼠标位置所在的行 str.Format(_T("nRow=%d\r\n"), nRow); OutputDebugString(str); *pResult = 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2022-05-02 halcon-gen_cross_contour_xld为每个输入点生成交叉形状的XLD轮廓
2022-05-02 halcon-实例:根据颜色提取想要的对象
2019-05-02 python-类对象的遍历操作