Получить код уведомления от флажков Listview Control

Я реализовал элемент управления ListView с LVS_EX_CHECKBOXES | LVS_EX_INFOTIP стиль. Я зарегистрировал функцию, чтобы получать уведомления от элементов управления представлением списка, используя.

BEGIN_MESSAGE_MAP(Class, ParentClass)
ON_NOTIFY(LVN_GETINFOTIP,IDC_LIST2,OnClickCheckBox)
END_MESSAGE_MAP()

У меня вопрос, какой код уведомления будет отправлен родителю, когда вы установите / снимите флажок в элементе управления ListView.

Какой код необходимо написать для обработки выбора флажков в функции OnClickCheckBox()?

Пожалуйста, помогите мне

1 ответ

Решение

Вы получаете сообщение об изменении предмета и должны выяснить, было ли изменено состояние флажка.

В карте сообщений:

ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, &CMyListView::OnLvnItemchanged)

Обработчик события:

void CMyListView::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

    if(pNMLV->uNewState == 8192) // Item checked
    {
        ...
    }
    else if(pNMLV->uNewState == 4096) // Item unchecked
    {
        ...
    }

    *pResult = 0;
}
Другие вопросы по тегам