是否可以像Xentient Labels
应用程序一样更改Windows资源管理器中项目的背景颜色?是否可以在Windows 7中使用Delphi XE2进行此操作?
答案 0 :(得分:11)
不可能在Windows 7中执行此操作,因为Windows资源管理器的列表视图使用的DirectUIHWND
不是SysListView32
,就像在Windows XP中一样。 DirectUIHWND
类控件不会监听列表视图消息,因此您无法像在Windows XP上那样使用ListView_SetTextBkColor
宏来更改文本颜色。
通过以下简单测试,您可以对其进行验证。我们在表单上有一个编辑框和按钮。在该编辑框中输入Windows资源管理器列表视图控件的句柄(例如通过Spy ++获取),然后在按钮的按下运行以下代码:
uses
Winapi.CommCtrl;
procedure TForm1.Button1Click(Sender: TObject);
var
ListViewHandle: HWND;
begin
ListViewHandle := StrToInt(Edit1.Text);
ListView_SetTextBkColor(ListViewHandle, $0000CCFF);
end;
来自Windows 7的此Spy ++屏幕截图显示了资源管理器列表视图的类名(在Windows XP中,SysListView32
可由标准列表视图消息控制,DirectUIHWND
不会对它们做出反应)。
答案 1 :(得分:2)
您无法为文字添加颜色,但您可以添加TortoiseSVN / CVS / Git / Groove / Dropbox等叠加层。确实