当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

xp系统好卡怎么回事啊?终于找到答案了窗口未响应时出现的白色闪烁

问题

如果由于某种原因需要重画窗口(例如,从隐藏状态更改为显示状态),但窗口所属的线程无法处理窗口重画消息,此时Windows将使用白色绘制此窗口。或者至少会收到用户对此问题的反馈。也就是说,窗户暂时变成了白色。

实际上,Windows只是会使用窗口类里指定的背景画刷来绘制窗口而已。因为大多数开发者使用COLOR_WINDOW这个颜色值,而COLOR_WINDOW在大部分的颜色配置系统中是白色的,所以,用户最终看到的结果是:Windows使用白色来绘制窗口。

为什么Windows要这样设计呢?

有人会问了:”为什么要多次一举再重绘一次呢?直接不管它就不就完了?”
的确,我们之前也是采用”什么都不做”的方案,但是这个方案的结果是:窗口会显示冻结之前的画面。

假设有这种场景:用户正在使用资源管理器,当他尝试恢复一个应用程序窗口时这个窗口恰巧挂起了。这个时候,如果采用”什么都不做”的方案,则他会看到,窗口的主界面会显示资源管理器的画面,用户有可能以为是资源管理器卡住了,实际上,是应用程序卡住了。当他在这个界面点击鼠标的时候,实际上是点击的卡住后的应用程序。

在Windows XP中,对未响应的窗口执行绘制的方法有点不一样。现在,系统会捕获窗口中未响应的那一部分区域,并尝试绘制它。但是,如果系统不能捕获到所有的窗口区域,比如,窗口的部分区域被覆盖了,则这部分区域会使用窗口类的背景画刷来进行绘制。

这就是你为什么看到一个白色窗口闪烁的原因。

总结

如果希望制作一个”丝滑”的用户界面,要小心谨慎的处理好界面主线程和工作线程的关系,一旦主线程中的代码执行时间过长,则窗口就有卡住的可能,用户就会开始抱怨了:好卡!

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《The white flash》

1.《xp系统好卡怎么回事啊?终于找到答案了窗口未响应时出现的白色闪烁》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《xp系统好卡怎么回事啊?终于找到答案了窗口未响应时出现的白色闪烁》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3233976.html

上一篇

xfplayexe怎么安装?我来告诉你答案Adobe Acrobat DC-PDF转Word利器

xp系统好卡怎么回事啊看这里!硬核科普!64位和32位有什么区别?到底哪个更快?

xp系统好卡怎么回事啊相关介绍,在电脑上安装系统和软件时,经常会出现32位系统和64系统选项,这两个系统有什么区别?32位系统64位系统可以安装吗?软件能互相兼容吗?32位系统卡顿有解决办法吗?今天S姐姐帮大家解决这些问题! 下载W...

xp系统好卡怎么回事啊?我来告诉你答案什么是64位和32位?装高手必备!

xp系统好卡怎么回事啊相关介绍,在电脑上安装系统和软件时,经常会出现32位系统和64系统选项,这两个系统有什么区别?32位系统64位系统可以安装吗?软件能互相兼容吗?32位系统卡顿有解决办法吗?今天给大家做硬核科普! 下载Windo...

xp系统好卡怎么回事啊?终于找到答案了64位和32位有什么区别?到底哪个更快?—— 硬核科普

xp系统好卡怎么回事啊相关介绍,在电脑上安装系统和软件时,经常会出现32位系统和64系统选项,这两个系统有什么区别?32位系统64位系统可以安装吗?软件能互相兼容吗?32位系统卡顿有解决办法吗?今天请大家帮忙解决这些问题! 下载Wi...