hur.cn - 华软网

 热门搜索

暴难!!!!期待高手!!!!

  作者:未知    来源:网络    更新时间:2011/9/8
对话框的TITLE是画上去的,在执行的时候都是多次先  EraseGnd 再 Onpaint(),但在WIN7下 切换主题时最后是 先执行Onpaint   再  EraseGnd(),导致TITLE被删除,  WM_THEMECHANGED是获取主题切换的消息,在XP下面OK,但是WIN7下截获不到这个函数消息,WHY???有什么方法可以避免 TITLE不被删除???
---华软 网友回答---
简单的办法就是用个Timer了,1秒InvalidateRect那个Title区域也不是很耗啊。


---华软网友回复---
EraseGnd()完了画一次
---华软网友回复---
引用楼主 cxj6543546 的回复:
对话框的TITLE是画上去的,在执行的时候都是多次先 EraseGnd 再 Onpaint(),但在WIN7下 切换主题时最后是 先执行Onpaint 再 EraseGnd(),导致TITLE被删除, WM_THEMECHANGED是获取主题切换的消息,在XP下面OK,但是WIN7下截获不到这个函数消息,WHY???有什么方法可以避免 TITLE不被删除???

用客户端一块区域做标题栏~
---华软网友回复---
引用 2 楼 shunruo 的回复:
EraseGnd()完了画一次

试过,再Onpaint了一次,但没效果,还是被删除的那样子。只有在刷新后再会变回来。
---华软网友回复---
引用 3 楼 visualeleven 的回复:
引用楼主 cxj6543546 的回复:
对话框的TITLE是画上去的,在执行的时候都是多次先 EraseGnd 再 Onpaint(),但在WIN7下 切换主题时最后是 先执行Onpaint 再 EraseGnd(),导致TITLE被删除, WM_THEMECHANGED是获取主题切换的消息,在XP下面OK,但是WIN7下截获不到这个函数消息,WHY???有什么方法可以避免 TITLE不被删除……


我的就是用客户区的一块做标题栏的。
---华软网友回复---
引用 1 楼 healer_kx 的回复:
简单的办法就是用个Timer了,1秒InvalidateRect那个Title区域也不是很耗啊。

这个方法也不行,刷新了,但TITLE还是被删除了。。。。。
---华软网友回复---
爆难啊
---华软网友回复---
引用 5 楼 cxj6543546 的回复:
引用 3 楼 visualeleven 的回复:
引用楼主 cxj6543546 的回复:
对话框的TITLE是画上去的,在执行的时候都是多次先 EraseGnd 再 Onpaint(),但在WIN7下 切换主题时最后是 先执行Onpaint 再 EraseGnd(),导致TITLE被删除, WM_THEMECHANGED是获取主题切换的消息,在XP下面OK,但是WIN7下截获不到这个函数消息……


用客户区做的标题栏怎么会被删掉?
---华软网友回复---
这个不算什么难题吧,很多自绘TITLE的软件在WIN7下都没有问题啊!?切换主题是不会受影响的。
肯定是你的绘制过程有问题或者BUG。
---华软网友回复---
估计是少响应了某个消息,在窗体收到某个消息时,重绘TITLE的工作没有完成,而其他部分完成了所以
覆盖了TITLE。在客户区绘制应该就更不会有问题了,WIN7切换主题不会影响客户区的。
---华软网友回复---
解决,是重绘的对象写错了,改成整个对话框就没问题了。
---华软网友回复---
对我而言,的确很难。。。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。