Проблема в обработке щелчка мыши CListCtrl - PullRequest
2 голосов
/ 30 декабря 2010

У меня есть listctrl с CheckBox в нем (LVS_EX_CHECKBOXES). Это один элемент управления List List.Моя проблема в том, что когда я нажимаю на флажок, конкретный элемент выбирается / не выбирается.Но когда я нажимаю на текст элемента, соответствующий флажок не становится выбранным / невыбранным.Как обращаться с обоими сценариями.

1 Ответ

2 голосов
/ 17 мая 2011

Чтобы проверить элемент, когда пользователь нажимает на текст элемента, вам нужно обработать сообщение NM_CLICK, которое отправляется всякий раз, когда пользователь нажимает на элемент.

Что-то вроде:

CYourListCtrl::OnNMClick(NMHDR* pNMHDR, LRESULT* pResult)
{

LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

int nItemIndex = pNMItemActivate->iItem;

BOOL bCurrentCheckState = GetCheck(nItemIndex);

SetCheck(nItemIndex, !bCurrentCheckState);

*pResult = 0;

}

Я пишу это без тестирования, поэтому вам нужно убедиться, что он не конфликтует с обработчиком для кликовСам флажок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...