为什么我的应用程序的窗口在Windows 8中是灰色的,而不像其他窗口那样基于桌面?

我有一个很大的遗留应用程序,它在我们运行它的每台 Windows 8机器上都显示一个永久的灰色边框,而其他应用程序的其他窗口则准确地使用从桌面背景派生的颜色.对于我的生活,我找不到原因.

我已经尝试了我最好的google-fu来抓取MSDN for API来控制它,但是空洞了.该应用程序看起来像Windows XP,Vista和7中的所有其他应用程序……只是Windows 8是灰色的.我们肯定没有添加Win8特定代码来处理这个问题.

它只是一个外部的MFC窗口,但它内部嵌入了一个.NET / WPF组件和一个支持Direct3D 9的可视区域.

我最好的猜测是,它可能与窗口中有一个Direct3D表面有关,但我无法在任何地方验证.

任何帮助将不胜感激!

谢谢

编辑:灰色匹配没有焦点的效果,我们肯定会玩窗口焦点的游戏…所以可能是它.

问题是开发人员重载OnNcActivate()并在最后返回TRUE.他们需要调用基类(CWnd)OnNcActivate.

如果你看得足够近,这在Windows 7上也是可见的.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...