почему функция макроса ListView_GetSelectedColumn () не работает?ничего не возвращает - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь получить индекс выбранного столбца элемента управления ListView, но функция макроса ListView_GetSelectedColumn возвращает НОЛЬ, независимо от того, как я нажимаю.

a = ListView_GetSelectedCount(lpNmhdr->hwndFrom);
a = 999;
a = ListView_GetSelectedColumn(lpNmhdr->hwndFrom);
a = SendMessage(lpNmhdr->hwndFrom, LVM_GETSELECTEDCOLUMN, 0, 0);

screenshot showing a has value 0 at breakpoint in debugger

1 Ответ

1 голос
/ 24 мая 2019

Я могу воспроизвести вашу проблему. Но я работаю после следующих шагов. Это мой результат теста:

enter image description here

Чтобы использовать ListView_GetSelectedColumn, укажите версию 6 Comctl32.dll в манифест. Создайте манифест и разрешите вашему приложению использовать визуальные стили.

См. Макрос ListView_GetSelectedColumn и Включение визуальных стилей .

Три шага, которые нужно выполнить:

  1. Ссылка на ComCtl32.lib и вызов InitCommonControls. (Вы уже сделали.)
  2. Добавьте файл с именем YourApp.exe.manifest в дерево исходных текстов в формате XML-манифеста. Для меня так:

enter image description here

  1. Добавьте манифест в файл ресурсов вашего приложения следующим образом:

enter image description here

...