怎样把桌面上图标的文字的背景色改为透明(100分)

  • 主题发起人 主题发起人 kingway
  • 开始时间 开始时间
K

kingway

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把桌面上图标的文字的背景色改为透明
 
procedure TForm1.Button1Click(Sender: TObject);
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);

end;
 
那怎样改变桌面的背景色
 
SendMessage(Wnd, $1001, 0, $ff);
就改成红色了。
 
o*o别象挤牙膏似的,问一句说一句
老实交代,这几个消息哪来的,还有没有,好处大大的,300分!!
 
先把分给我。:-) 看过了你可别后悔。呵呵。
 
o*o兄,我开了个问题,你去看看吧
我要是后悔,你再还我300分,咱俩来回倒几次
不就都赚翻了吗:)
 
o*o和hubdog:都学坏了,以后歪就歪的歪路可就难走了:(
 
俺回来了,好一顿丰盛的午餐,现在手上还油乎乎的...
酒足饭饱之后,突然良心发现,耳边响起毛主席他老人家的几声呢喃:
“要斗私批修!”
“不劳而获的歪风不可长!”
“要建设一个健康的社会主义的大富翁论坛!”
这300分我不要了,恳请HUB兄把它送给进那屋的最穷的人。
(快去“o*o请进”这屋登记吧)
之所以不好意思要分,是因为这些东西都在Commctrl.pas里。
直接用值表示,就不用uses了。当然了,得知道值的含意。
 
呜呼呀,上当了,哎只当是捐给希望工程了,wuwu~~~~
对了
SendMessage(Wnd, $1026, 0, $ffffffff);
//为什么color设成$ffffffff就可以
把文本的背景色设成透明的?
 
ListView就是这么定义的:
Const CLR_NONE = $ffffffff ;
其原理不知道。
 
好了,这个问题应该可以结束了
 
直接用SetSysColors就可以发变桌面的背景色:
Var
c1, c2: TCOLORREF;
begin
c1:= COLOR_DESKTOP;
c2:= RGB(192,192,192);
SetSysColors( 1, c1, c2 );
end;
 
O*O你真是赚翻了
这个问题我以前问过
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=106228
回答正确,你去拿分吧
顺便问你是从哪里看来这个消息的???
 
我已去LID=106228报到了。谢谢你。
这个消息不过是ListView设置文本背景颜色的消息呀。
LVM_SETTEXTBKCOLOR
 
接受答案了.
 
后退
顶部