Нужно только несколько строк в элементе управления CListCtrl, чтобы иметь флажки - PullRequest
2 голосов
/ 10 октября 2008

Я использую элемент управления CListCtrl для отображения информации в моем приложении MFC. В настоящий момент у меня установлен LVS_EX_CHECKBOXES в SetExtendedStyle, поэтому рядом со всеми строками элемента управления стоит флажок. Однако мне бы хотелось, чтобы только некоторые строки в элементе управления имели флажки. Это возможно ? Если это так, как это сделать?

Спасибо

Ian

Ответы [ 2 ]

6 голосов
/ 10 октября 2008

Для каждого элемента, который не должен иметь флажок:

LVITEM lvi;
lvi.stateMask = LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(0);
::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);

Чтобы «создать» флажок для элемента:

SetCheck(Item, true/false);
0 голосов
/ 10 октября 2008

Да, это так. Что вам нужно сделать, это создать растровые изображения флажков и включить их в обратный вызов. Одна из ваших битовых карт будет пустой.

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

Вы также можете добавить код для проверки щелчков мыши и соответственно реагировать.

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