LVN_ITEMCHANGEDを処理することにより知ることができます。
void CTest0031Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
{//LVN_ITEMCHANGED
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
if(pNMListView->uChanged & LVIF_STATE
/* && (pNMListView->uNewState & LVIS_STATEIMAGEMASK)
!=(pNMListView->uOldState & LVIS_STATEIMAGEMASK))*/
&& (pNMListView->uNewState ^ pNMListView->uOldState) & LVIS_STATEIMAGEMASK)
{
if(((CListCtrl *)GetDlgItem(IDC_LIST1))->GetCheck(pNMListView->iItem))
TRACE("CHECK!!\n");
else TRACE("UNCHECK!!\n");
}
*pResult = 0;
}