我有一个很大的遗留应用程序,它在我们运行它的每台
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上也是可见的.