再问一次,当透明窗口遇上屏保!解决方法
再问一次,当透明窗口遇上屏保!
做一个透明窗口,我想不用我多说了,程序如下,应该没什么问题:
SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(m_hWnd, 0, 85, LWA_ALPHA);
但有一点说明一下,上面的m_hWnd窗口是一个POPUP型无模式对话框,并且在一个主对话框中创建,也就是说他不是主窗口。
问题仅仅表现在WIN2003上,当屏保启动,经过相当长一段时间后,大概2,3小时,再退出屏保,此时对话框变成一块白板,上面的按钮,列表什么的都消失了!
最小化,再还原,问题解决。
把鼠标移动到按钮上,按钮就显示出来。
不知道大家遇到过这个问题没有,有没有解决办法?
注:程序运行没有问题,界面没有死,内存没有增长。
------解决方案--------------------
你设个timer定时给它重绘一下
------解决方案--------------------
最小化,再还原,问题解决。
把鼠标移动到按钮上,按钮就显示出来。
==========================================
这说明重绘就好了。
------解决方案--------------------
需要重绘一下就好了
------解决方案--------------------
按理说,屏保退出的时候,系统应该会给你的窗口一个重绘的建议(消息)的.
做一个透明窗口,我想不用我多说了,程序如下,应该没什么问题:
SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(m_hWnd, 0, 85, LWA_ALPHA);
但有一点说明一下,上面的m_hWnd窗口是一个POPUP型无模式对话框,并且在一个主对话框中创建,也就是说他不是主窗口。
问题仅仅表现在WIN2003上,当屏保启动,经过相当长一段时间后,大概2,3小时,再退出屏保,此时对话框变成一块白板,上面的按钮,列表什么的都消失了!
最小化,再还原,问题解决。
把鼠标移动到按钮上,按钮就显示出来。
不知道大家遇到过这个问题没有,有没有解决办法?
注:程序运行没有问题,界面没有死,内存没有增长。
------解决方案--------------------
你设个timer定时给它重绘一下
------解决方案--------------------
最小化,再还原,问题解决。
把鼠标移动到按钮上,按钮就显示出来。
==========================================
这说明重绘就好了。
------解决方案--------------------
需要重绘一下就好了
------解决方案--------------------
按理说,屏保退出的时候,系统应该会给你的窗口一个重绘的建议(消息)的.