怎麼得到在桌面點選右鍵先刷新的消息!?(50分)

  • 主题发起人 主题发起人 tihao
  • 开始时间 开始时间
T

tihao

Unregistered / Unconfirmed
GUEST, unregistred user!
我編了一個桌面透明設置程序,但桌面刷新以後就不行啦!請幫忙,另外請有這方面經驗的前輩指點!!
 
我也没找到,用时钟吧。
 
急急急!!難道真的找不到麼???各們大俠幫幫忙啊!
 
我編了一個桌面透明設置程序,在屏幕上點右鍵在彈出菜單中選擇刷新後<br>,圖標的文本背景就又恢得了沒有設置前的情形,又不透明啦!啦!請幫忙,<br>請有這方面經驗的前輩指點!!<br>&nbsp;<br>&nbsp;<br>
 
你可以响应这个消息,把你的画图部分再画一次,这个消息是<br>好象是WM_WININICHANGE 或者是WM_WINDOWPOSCHANGED
 
我就是不知道怎麼截獲這個消息啊?在哪里截獲啊??幫幫忙啊!
 
你在自己的form里的<br>private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; &nbsp;<br>&nbsp; &nbsp; procedure WMWININICHANGE (var Msg:TMessage); message WM_WININICHANGE ; <br>end;<br>再在下面定义这个函数就OK了,系统会自动在这个事件的时候调用你的事件响应函数
 
楼上的对了
 
按你的方法試了,但好象沒有用啊!<br>&nbsp;private<br>&nbsp; &nbsp; &nbsp;procedure WMWININICHANGE (var Msg:TMessage); message WM_WININICHANGE ;<br><br>procedure Tdeskset.WMWININICHANGE (var Msg:TMessage);<br>begin<br>&nbsp; &nbsp;if radiobutton1.Checked=true then<br>&nbsp; &nbsp; &nbsp; SetTextColor(colorbox1.selected,crNone)<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; SetTextColor(colorbox1.selected,clBlack);<br>end;
 
桌面刷新以後系统一定要所有窗口发送WM_WININICHANGE么?好像注册表或Win.ini<br>改变才发送此消息吧? &nbsp;至于<br>WM_WINDOWPOSCHANGED不会有系统向所有窗口广播此消息。
 
有哪位答对了?
 
试试用WH_GETMESSAGE hook 截获desktopwindow的wm_paint消息, 如果截到, 说明你需要重画了
 
不用找了,XP里面图标透明也是有个transparent的程序在运行的。
 
還沒好啊??哪位有辦法啊???
 
HOOK桌面的WM_Paint消息,
 
能不能幫忙寫一下代碼啊,<br>我這邊真的不行啦!!<br>我按各位的來做啦但還是不行啊!
 
到底怎麼弄啊?
 
应该是WM_SETTINGCHANGE消息:)
 
多人接受答案了。
 
后退
顶部