ListView множественное выборочное поведение?

StackOverflow https://stackoverflow.com/questions/4383918

  •  10-10-2019
  •  | 
  •  

Вопрос

ListView в comtl32.dll v6.0 делает несколько выборов (при использовании клавиши Shift) следующим образом (x означает выбранное)

00xxxx
xxxxxx
xxxx00

Более ранние версии ListView делают это следующим образом:

00xx00
00xx00
00xx00

Есть ли способ сделать это первым способом (Comctl32 v6.0 Way)?

Спасибо, Джон

Это было полезно?

Решение

Короткий ответ: нет. Но потому что это кажется неполным ...

А ListView не выявляет API, который позволяет вам изменить свое отборное поведение, и, как Ганс Косево выражает его в своем комментарии, единственный способ изменить поведение ListView Контроль, найденный в версиях Comctl32.dll до версии 6.0, находится с машиной времени. В встроено много уникального поведения ListView контроль относительно событий отбора, поэтому даже если вы попытаетесь и владельца нарисовать элемент управления для изменения внешность Из поведения отбора вы вдруг столкнулись с необходимостью справиться с почти нелепым количеством оконных сообщений, которые потенциально могут вызвать изменение выбора.

Также стоит отметить, что этот вопрос вводит в заблуждение на совершенно ином уровне. Если пользователь вашего приложения запускает версию Windows, которая включает в себя версию comctl32.dll до версии 6.0, Это поведение, которое они ожидают из ListView контроль. Перелюбный и меняющийся, это было бы не чем иным, как смущать их, потому что это не сработало бы так же, как и все остальные ListView контроль найден на их компьютере. Напротив, если пользователь вашего приложения запускает версию Windows, которая включает в себя comctl32.dll v6 или более ListView контроль будет уже Выступайте, как вы описываете по умолчанию. (И вы не должны хотеть менять его по тем же причинам.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top