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

Sen*_*tAI 8 windows mfc windows-8

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

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

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

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

任何帮助将不胜感激!

谢谢

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

Sen*_*tAI 2

问题是开发人员重载了 OnNcActivate() 并最终返回 TRUE。他们需要调用基类的 (CWnd) OnNcActivate。

如果您观察得够仔细的话,在 Windows 7 上也可以看到这一点。