我的代码如下:  Window := FindWindow('Progman', 'Program Manager');
  //找到桌面窗口
  Window := FindWindowEx(Window, HWND(nil), 'SHELLDLL_DefView', '');
  //找到放置桌面图标的ListView窗口
  Window := FindWindowEx(Window, HWND(nil), 'SysListView32', '');  if Trans then         //设置透明的文字背景色
    ListView_SetTextBkColor(Window, $ffffffff) // back color
  else                  //设置不透明的文字背景色
    ListView_SetTextBkColor(Window, Background); // back color  ListView_SetTextColor(Window, Forground); // foreground color
  //重新绘制桌面图标
  ListView_RedrawItems(Window, 0, ListView_GetItemCount(Window) - 1);
  UpdateWindow(Window);   //重新绘制窗口

解决方案 »

  1.   

    桌面刷新的消息?是不是桌面背景窗口的WM_PAINT消息?
    要拦截他,可能需要用到subclass技术,
    详见陈宽达著《Delphi深度历险》,里面有这方面的详细描述。:)
      

  2.   

    procedure tform1.formcreate(sender:tobject);
    begin
      form1.brush.style:=bsclear;
      form1.borderstyle:=bsnone;
    end;procedure createparams(var params:tcreateparams);override;  //定义的过程
    begin
      inherited createparams(params);
         params.exstyle:=WS_EX_transparent;
    end;
      

  3.   

    To TechnoFantasy(www.applevb.com):
       你的代码我看不懂,那些变量是如何定义的?没法运行
    To yxjjx(孤行者):
       你的代码似乎对我的问题没有帮助。To All:希望各位高手能回答的详细些
      

  4.   

    up,i have a interesting
      

  5.   

    up,i have a interesting
      

  6.   

    自己写个桌面程序吧,,,下载地址:
        http://202.103.69.33/cnshare/showsoft.php3?id=2586
        http://www.csdn.net/soft/openfile.asp?kind=1&id=14320
    它的桌面是用程序写的,可惜不能在W2K下运行?/