我倒是想帮你看看,可是我不懂你的意思
桌面图标的文字本来不就是透明的么?
或者你告诉我那个API,我去看看帮助它是干什么使的,可能就明白你的意思了

解决方案 »

  1.   

    var wnd:HWND;
    begin
       Wnd := GetDesktopWindow;
       Wnd := FindWindowEx(Wnd, 0, 'Progman', nil);   Wnd := FindWindowEx(Wnd, 0, 'SHELLDLL_DefView', nil);   Wnd := FindWindowEx(Wnd, 0, 'SysListView32', nil);   SendMessage(Wnd, $1026, 0, $ffffffff); //this
       SendMessage(Wnd, $1024, 0, $00ffffff);
       InvalidateRect(Wnd, nil, TRUE);
    以上的代码是将桌面图标的文字背景色设为透明,有兴趣的试一下!!我想做成一个实时更新的,现在有很多软件已经可以了!
      

  2.   

    你的作一个服务程序,监控桌面刷新事件!! 类似于Microangelo的OnDislpay!!!
      

  3.   

    将桌面图标的文字背景色设为透明
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,CommCtrl, StdCtrls ;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        function GetDesktopHand: THandle;
        procedure SetTextColor(ForeClr, BackClr: TColor);
      end;var
      Form1: TForm1;implementation{$R *.dfm}function TForm1.GetDesktopHand: THandle;
    begin
      Result:=FindWindow('progman',nil);
      Result:=GetWindow(Result,GW_Child);
      Result:=GetWindow(Result,GW_Child);
    end;procedure TForm1.SetTextColor(ForeClr, BackClr: TColor);
    var Hand: THandle;
    begin
      Hand:= GetDesktopHand;
      Listview_SetTextColor(Hand,ForeClr);   // 设置文字前景色;
      Listview_SetTextBkColor(Hand,BackClr);  // 设置文字背景色,crNone 为透明;
      Listview_RedrawItems(Hand,0,Listview_GetItemCount(Hand));  //  重画;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SetTextColor(crNone,crNone);
    end;end.
      

  4.   

    明白了,可是挺好使的啊
    没有“重新刷新后,又恢复为不透明啊”
    另外顺便问sean2000(地宽天高)和xzhifei (飞)一个问题,
    问什么我给别的程序的状态栏(status window)发SB_GETTEXT得不到其内容呢?
    有什么办法解决?
      

  5.   

    to  sean2000(地宽天高) 
    delphi的函数可以有多个返回值么?
    (function TForm1.GetDesktopHand: THandle;
    begin
      Result:=FindWindow('progman',nil);
      Result:=GetWindow(Result,GW_Child);
      Result:=GetWindow(Result,GW_Child);
    end;
    )