2012-05-21 60 views
4

http://screenshots.en.sftcdn.net/en/scrn/39000/39972/xentient-labels-1.jpg有沒有辦法在Windows 7中的Windows資源管理器中更改項目的文本背景顏色?

是否可以更改Windows資源管理器中項目的背景顏色,如Xentient Labels應用程序所做的操作?在Windows 7中可以使用Delphi XE2嗎?

+1

我若爲王,所有的文件列表將永遠是黑色和白色,等寬文本。但這只是我,我猜;) – paulsm4

+0

正如Hans Passant所說['here'](http://social.msdn.microsoft.com/Forums/en-SG/netfxbcl/thread/0c206a47-64ec-47b5-a1f9- c7a1d5ad1194)它不能在Windows 7中工作。您可以找到Windows資源管理器列表視圖的句柄,並將其用作['ListView_SetTextBkColor'](http://msdn.microsoft.com/en-us/library /windows/desktop/bb775114%28v=vs.85%29.aspx)宏。 – TLama

+4

如果您可以在其中添加一些閃爍的文字,那將會很棒 –

回答

11

無法做到這一點在Windows 7中,因爲Windows資源管理器的列表視圖中使用DirectUIHWNDSysListView32,因爲它是在Windows XP中。 DirectUIHWND類控件不會偵聽列表視圖消息,因此您不能像使用Windows XP一樣使用ListView_SetTextBkColor宏來更改文本背景顏色。

通過以下簡單的測試,您可以驗證它。讓我們在窗體上有一個編輯框和按鈕。在編輯框中輸入手柄到Windows資源管理器的列表視圖控件(獲得,如間諜++)和按鈕的按下運行下面的代碼:

uses 
    Winapi.CommCtrl; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
    ListViewHandle: HWND; 
begin 
    ListViewHandle := StrToInt(Edit1.Text); 
    ListView_SetTextBkColor(ListViewHandle, $0000CCFF); 
end; 

此間諜++從Windows 7的屏幕截圖顯示了瀏覽器的列表中的類名查看(在Windows XP中,SysListView32可由標準列表視圖消息控制,DirectUIHWND不會對它們做出反應)。

enter image description here

+0

現在查看來自問題的圖片,['ListView_SetTextBkColor'](http://msdn.microsoft.com/en-us/library/windows/desktop/bb775114%28v=vs.85%29.aspx)宏將不會是正確的。它更改列表視圖中所有項目的顏色背景。但是它仍然不會改變Windows 7資源管理器中的列表視圖不會偵聽列表視圖消息的事實,因此在這種情況下無需搜索正確的消息。 – TLama

+1

+1不錯答案TLama :) – 2012-05-21 21:46:48

2

您不能爲文本着色,但可以添加疊加層,如TortoiseSVN/CVS/Git/Groove/Dropbox /等。確實。

http://tortoisesvn.net/features.html

+2

鏈接:訪問禁止,重新加載PLZ到其他任何圖像主機 –

+1

如果鏈接被禁止,只需點擊地址欄上的禁止錯誤的地址欄上,現在它會加載。禁止鏈接通常會檢查您發送的位置,通過再次按下地址欄上的輸入,您可以欺騙網站,讓您認爲您直接從網站訪問鏈接:) – 2012-05-21 14:31:44

+0

鏈接被替換... – DiGi

相關問題