//为ListCtrl控件添加LVN_ITEMCHANGED消息。
void CXXXDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: Add your control notification handler code here
*pResult = 0;
}
//在LVN_ITEMCHANGED消息处理函数中添加代码如下:
void CXXXDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: Add your control notification handler code here
/*
typedef struct tagNMLISTVIEW
{
NMHDR hdr;
int iItem;
int iSubItem;
UINT uNewState;
UINT uOldState;
UINT uChanged;
POINT ptAction;
LPARAM lParam;
} NMLISTVIEW, *LPNMLISTVIEW;
*/
if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(1)) //旧状态:unchecked
&& (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(2)) //新状态:checked
)
{
TRACE("Item %d is checked/n", pNMLV->iItem);
}
else if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(2)) //旧状态:checked
&& (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(1)) //新状态:unchecked
)
{
TRACE("Item %d is unchecked/n", pNMLV->iItem);
}
else
{
TRACE("Item %d does't change the check-status/n", pNMLV->iItem);
}
*pResult = 0;
}