CListCtrl Checkbox 被点击消息捕获 判断单击 click响应 单击消息 单击状态

原文来自:http://blog.163.com/danshiming%40126/blog/static/10941274820134244250444/

找了很多,有说响应NM_CLICK的,有说响应ItemChanged的,还是上面网址的哥们好使。不过我这里放出函数的创建过程,方便初学者,大家拿去happy吧。

1、在h文件定义函数:

afx_msg  void CDlgFIFO::OnItemchangedListFifoGroup(NMHDR* pNMHDR, LRESULT* pResult) ;

2、在c文件定义响应:

ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_GRAPHICS_OPTION,&CSubChildDlgCanView::OnItemChangedListCtrl)

3、在c文件定义函数体:

void CDlgFIFO::OnItemchangedListFifoGroup(NMHDR* pNMHDR, LRESULT* pResult) 
{
LPNMITEMACTIVATE   pNMLV   =   (LPNMITEMACTIVATE)pNMHDR;
if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(1)) /* old state : unchecked */ 
&& (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(2)) /* new state : checked */ 
) 
{ 
TRACE("Item(行) %d subItem(列) %d is checked\n", pNMLV->iItem,pNMLV->iSubItem); 
} 
else if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(2)) /* old state : checked */ 
&& (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(1)) /* new state : unchecked */ 
) 
{ 
TRACE("Item %d is unchecked\n", pNMLV->iItem); 
} 
else 
{ 
TRACE("Item %d does't change the check-status\n", pNMLV->iItem); 
} 
*pResult = 0;
}

好了,尽情享受吧。顺便说一下NM_CLICK也是可以的,不过要挨个判断checkbox,没有我们这个直观方便。


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值