Gu.*_*u. 4 delphi winapi windows-explorer windows-7 delphi-xe2

是否可以像Xentient Labels应用程序一样更改Windows资源管理器中项目的背景颜色?是否可以从Windows 7中的Delphi XE2执行此操作?
TLa*_*ama 11
这是不可能的,因为Windows资源管理器的列表视图使用要做到这一点在Windows 7 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;
Run Code Online (Sandbox Code Playgroud)
来自Windows 7的此Spy ++屏幕截图显示了Explorer列表视图的类名称(在Windows XP中,它SysListView32可由标准列表视图消息控制,DirectUIHWND不会对它们做出反应).

| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |