窗口嵌入桌面后不重绘的问题如何解决?请赐教!
在XP系统下用SetParent设置窗口的父窗口为Progman或下面的SHELLDLL_DefView后可以实现窗口嵌入桌面的效果,这本身没问题。
但我发现这个嵌入桌面后的窗口如果本身显示的内容会自己改变(如实现一个嵌入桌面的日历程序),若将这个窗口的一部分移到屏幕之外,再移回来,会发现屏幕外部部分在移回来后不会自动重绘,对日历程序来说的现象是:如果出现跨月情况,就会一部分已更新为当月,移到外面的部分仍显示为上一月的内容。
另外,若将桌面锁定,在锁定过程中窗口发生的改变在解锁后也不会自动重绘;
试过设置各控件和窗口的AutoRedraw属性,试过嵌入的各层次(Progman,下面的DefView,和更下面FolderView),也试过更新窗口的时候InvalideRect整个窗口,但都无果,确实没办法,请高手赐教!
[解决办法]
SENDKEYS"[F5]"
[解决办法]
什么意思?,能否具体点儿?
[解决办法]
试过了,F5和刷新桌面没用
[解决办法]
还是自己解决了,在Progman或SHELLDLL_DefView上面挂了个全局钩子,处理Erase Bkg消息触发重回。
[解决办法]
楼主不错哦