Можно ли изменить цвет фона элементов в проводнике Windows, как это делает приложение Xentient Labels
? Возможно ли это сделать из Delphi XE2 в Windows 7?
Есть ли способ изменить цвет фона текста элементов в проводнике Windows в Windows 7?
Ответы (2)
невозможно сделать это в Windows 7, так как в представлении списка проводника Windows используется DirectUIHWND
, а не SysListView32
, как это было в Windows XP. Элемент управления класса DirectUIHWND
не прослушивает сообщения представления списка, поэтому вы не можете использовать ListView_SetTextBkColor
для изменения цвета фона текста, как в Windows XP.
С помощью следующего простого теста вы можете убедиться в этом. Давайте создадим поле редактирования и кнопку на форме. В этом поле ввода введите дескриптор элемента управления представлением списка проводника Windows (полученного, например, с помощью Spy++), и при нажатии кнопки запустите следующий код:
uses
Winapi.CommCtrl;
procedure TForm1.Button1Click(Sender: TObject);
var
ListViewHandle: HWND;
begin
ListViewHandle := StrToInt(Edit1.Text);
ListView_SetTextBkColor(ListViewHandle, $0000CCFF);
end;
На этом снимке экрана Spy++ из Windows 7 показано имя класса представления списка Проводника (в Windows XP оно SysListView32
управлялось стандартными сообщениями представления списка, DirectUIHWND
не реагирует на них).
ListView_SetTextBkColor
не подходит. Он изменяет цвет фона для всех элементов в представлении списка. Однако это по-прежнему не меняет того факта, что представление списка в проводнике Windows 7 не прослушивает сообщения представления списка, поэтому в этом случае нет необходимости искать нужное.
- person TLama; 21.05.2012
Вы не можете раскрасить текст, но вы можете добавить наложения, такие как TortoiseSVN/CVS/Git/Groove/Dropbox/и т.д. делает.
(из https://tortoisesvn.net/screenshots.html)
here
< /a> это не будет работать в Windows 7. Вы найдете дескриптор представления списка проводника Windows и самым простым способом воспользуетесьListView_SetTextBkColor
. - person TLama   schedule 21.05.2012DirectUIHWND
и не прослушивает сообщения представления списка, поэтому это невозможно в Windows 7. - person TLama   schedule 21.05.2012