是否可以像应用程序一样更改 Windows 资源管理器中项目的背景颜色Xentient Labels
?是否可以从 Windows 7 中的 Delphi XE2 执行此操作?
问问题
1590 次
2 回答
11
在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;
这个来自 Windows 7 的 Spy++ 屏幕截图显示了资源管理器列表视图的类名(在 Windows XP 中,它SysListView32
可以通过标准列表视图消息控制,DirectUIHWND
不会对它们做出反应)。
于 2012-05-21T08:01:39.597 回答
2
你不能给文本上色,但你可以添加像 TortoiseSVN/CVS/Git/Groove/Dropbox/etc 这样的覆盖。做。
于 2012-05-21T07:56:12.733 回答