原文来自: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,没有我们这个直观方便。