LVN_ITEMCHANGED отправляется через сообщение WM_NOTIFY от элемента управления его родительскому элементу, поэтому вам просто нужно добавить функцию-обработчик LVN_ITEMCHANGE в родительский класс (например, CMyDlg):
В заголовочном файле:
class CMyDlg : public CDialog
{
...
protected:
afx_msg void OnLvnItemChanged(NMHDR *pNMHDR, LRESULT *pResult);
...
}
В исходном файле:
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
...
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST, &CMyDlg::OnLvnItemChanged)
...
END_MESSAGE_MAP()
...
void CMyDlg::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
*pResult = 0;
... // examine *pNMLV members for item's information
}
Неважно, как создается элемент управления CListCtrl
(через редактор ресурсов или динамически), подход тот же. Просто убедитесь, что вы используете правильный элемент управления ID
в ON_NOTIFY
записи карты сообщений. (ID
передано Create
/ CreateEx
или определено в Свойствах в редакторе ресурсов).