作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
可以更改 Windows 资源管理器中项目的背景颜色,例如 Xentient Labels
应用程序有什么作用?是否可以在 Windows 7 中的 Delphi XE2 中执行此操作?
最佳答案
在 Windows 7 中不可能执行此操作,因为 Windows 资源管理器的 ListView 使用 DirectUIHWND
而不是 Windows XP 中的 SysListView32
。 DirectUIHWND
类控件不会监听 ListView 消息,因此您不能使用 ListView_SetTextBkColor
宏可以像在 Windows XP 上一样更改文本背景颜色。
通过下面的简单测试就可以验证一下。让我们在表单上添加一个编辑框和按钮。在该编辑框中输入 Windows 资源管理器的 ListView 控件的句柄(例如通过 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++ 屏幕截图显示了资源管理器 ListView 的类名(在 Windows XP 中,它是由标准 ListView 消息控制的 SysListView32
,而 DirectUIHWND
则不能)不要对它们使用react)。
关于delphi - 有没有办法更改 Windows 7 中 Windows 资源管理器中项目的文本背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680899/
我是一名优秀的程序员,十分优秀!