Разрешить выбор в представлении списка в стиле Explorer для начала в первом столбце
В представлении списка Windows 7 Windows Explorer (которое якобы вообще не является представлением списка) в представлении "Сведения" можно запустить выделение области в первом столбце ("Имя"). Вам просто нужно начать с фактического имени.
![Windows 7's Windows Explorer Selection Marquee]()
То же самое относится к элементу управления списком в стиле по умолчанию в представлении сведений.
Но если вы установите элемент управления представления списка в стиле проводника (используя SetWindowTheme
), что должно имитировать проводник Windows, это больше не будет работать. Вы можете начать выбор только во втором и последующих столбцах.
SetWindowTheme(listView1.Handle, "explorer", null);
Есть ли способ сделать вид списка имитировать стиль выбора Explorer?
Я предполагаю, что нет никаких настроек для включения такого поведения, и это должно быть закодировано. Как манипулирование мышью вниз и запуск выбора. Но я понятия не имею, как это сделать.
Благодарю.
Ntb, я использую С++ Builder, но это должно быть чисто Win32 проблема. Я также проверил это с WinForms (отсюда пример С# выше).
Ответы
Ответ 1
На самом деле есть способ имитировать поведение выбора проводника. Это требует много дополнительной декларативной работы, но это возможно.
Вам нужно получить недокументированный IListView
интерфейс через недокументированное сообщение LVM_QUERYINTERFACE
(обратите внимание, что декларация интерфейса и GUID отличаются для Windows Vista и Windows 7+). Подробности о константах и декларациях можно найти здесь:
После приобретения интерфейса все, что вам нужно, это просто вызов метода SetSelectionFlags(1, 1)
. Вуала, ты сделан.
Ответ 2
Есть ли способ сделать просмотр списка похожим на стиль выбора проводника?
Нет, SysListView32
в explorer
тема не ведет себя так. Элемент управления, используемый современным Проводником, фактически DirectUIHwnd
. И вы не можете использовать один из них.
Единственный способ получить поведение DirectUIHwnd
- это сам код. Я ожидаю, что это можно сделать, но я также ожидаю, что это будет очень трудно достичь.