双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

CListCtrl的click事件与itemchanged事件

xiaoluhelu xiaoluhelu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1、CListCtrl添加了checkbox;
2、itemchanged事件:
void CtestDlg::OnLvnItemchangedFilelist(NMHDR *pNMHDR, LRESULT *pResult)//在这里对复选框的状态进行查询
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: Add your control notification handler code here
USES_CONVERSION;

if(m_bHit)
{
m_bHit=FALSE;//复位
if(m_VideoList.GetCheck (m_itemSel))//m_itemSel是行号,checkbox选中
{
m_VideoList.SetItemText (m_itemSel,1,L"等待下载...");
}
//取消了checkbox框
else
{
m_VideoList.SetItemText(m_itemSel,1,L"");
}
}
*pResult = 0;
}
3、click事件:
void CtestDlg::OnNMClickFilelist(NMHDR *pNMHDR, LRESULT *pResult)//鼠标点击消息
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

USES_CONVERSION;
// TODO: Add your control notification handler code here
//单击所在的行号,找出鼠标位置
DWORD dwPos=GetMessagePos();
CPoint point(LOWORD(dwPos),HIWORD(dwPos));
m_VideoList.ScreenToClient (&point);

LVHITTESTINFO lvinfo;
lvinfo.pt =point;
//获取行号信息
int nItem=m_VideoList.HitTest (&lvinfo);
if(nItem!=-1)
{
m_itemSel=lvinfo.iItem ;//当前行号
}
//判断是否点击在checkbox上
if(lvinfo.flags =LVHT_ONITEMSTATEICON)//The position is over the state image of a list-view item.
m_bHit=TRUE;
*pResult = 0;
}

4、问题:当选择不同的复选框时,没有问题;若是只点击一个复选框,来回的勾选取消,相应的insert的text内容不显示,不知道是什么原因,大神们帮帮忙!谢谢!
...全文
评论 3
收藏 已收藏
分享
返回顶部
xiaoluhelu
界面 15,976 成员 115,866 内容