Сохранить строку постоянно выбранной в ListView в Win32 - PullRequest
7 голосов
/ 03 февраля 2012

Я использую Win32 ListView32.

Когда выбран ряд в ListView , он имеет темно-синий цвет. Строку можно выбрать, щелкнув по ней или программно, вызвав ListView_SetItemState(hwnd, index, LVIS_SELECTED, LVIS_SELECTED);.

Когда ListView фокус управления потерян, выбранная строка становится серой.

Как сохранить выбранную строку синим цветом независимо от фокуса?

Ответы [ 3 ]

2 голосов
/ 03 февраля 2012

Используйте стиль окна LVS_SHOWSELALWAYS.Я не думаю, что он может оставаться темно-синим, поскольку это индикатор того, что этот элемент управления имеет фокус.

1 голос
/ 06 марта 2014

Если вы используете VC6.0.Вы можете установить свойства как «Показать выделение всегда» для ListView.И ListView будет определен VC6.0 как LVS_SHOWSELALWAYS.

Определение элемента управления в файле ресурсов выглядит следующим образом:

CONTROL         "List2",IDC_LIST_MEMBER,"SysListView32",LVS_REPORT | 
                LVS_SHOWSELALWAYS | LVS_EDITLABELS | WS_BORDER | 
                WS_TABSTOP,7,64,514,187

И выбранный элемент будет выделен.Для моей программы цвет фона по умолчанию - белый, выбранный по умолчанию и сфокусированный цвет - синий, а выбранный по умолчанию, но потерянный сфокусированный цвет - серый (при щелчке по другому элементу управления).

1 голос
/ 24 января 2014

"Предположительно, вы делаете это в обработчике OnInitDialog? Если это так, вам нужно установить SetFocus в элемент управления списком и вернуть FALSE из OnInitDialog."

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