程序从最大化还原致使桌面花了(200)

F

fhong

Unregistered / Unconfirmed
GUEST, unregistred user!
我用一个无边框的窗体做主界面,并且设了transparentcolor 为true。当程序最大化后再还原,桌面就花了,桌面的图标乱了。花了后,无论程序是再最大化,再还原,还是最小化,桌面都是花的。只有打开另外一个程序(比如我的电脑),桌面才又变回干净,整齐。不知道有哪位高手遇到这样的情况,又是怎样解决的?先在这感谢回答的兄弟!
 
重绘区域
 
“重绘区域”?是桌面花了,程序没花的(“程序”是指我开发的程序)。
 
uses ShlObj SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);//用这个刷新下桌面看看
 
来自:zhengrong117, 时间:2010-5-25 12:39:30, ID:3993801 uses ShlObj SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);//用这个刷新下桌面看看 是可以刷新桌面。但如果我开发的程序背后不仅是桌面,而还有其他程序时,背后的程序还是花了的。明白我的意思吗?也就是说如果桌面上只有我开发程序,桌面花屏。如果还有其他程序,比如我的电脑,那么我的电脑就花了。要重新最小化后再最大化我的电脑,才变正常。也就说我开发的程序最大化后还原,背后(背景)是花了的。
 
同意二楼,重新绘制程序背景。最大化后的背景与窗口还原后的背景(桌面)是融合操作。没有刷除程序背景后再与桌面融合,只是简单将程序背景与桌面融合而已。
 
把你的代码放上来看看
 
受 smlabc和 dark_power的启示(最大启示还是dark_power。smlabc说得太简单了,我不太明白他的意思),在还原前加了一句代码就没事了。分数迟点发。谢谢各位! InvalidateRect(handle, nil, true); //加了这段代码 self.WindowState := wsNormal ;
 
多人接受答案了。
 
顶部