Visual studio 2008 旧式MFC应用程序在带有Aero主题的windows7操作系统上运行不正常,但在经典主题下表现良好

Visual studio 2008 旧式MFC应用程序在带有Aero主题的windows7操作系统上运行不正常,但在经典主题下表现良好,visual-studio-2008,visual-c++,windows-7,mfc,Visual Studio 2008,Visual C++,Windows 7,Mfc,我们有一个MFC应用程序,它是用VC9.0编译器在VisualStudio2008专业版上开发的。该应用程序在windows server 2003、windows xp和2008 R2操作系统上运行良好。当我在windows7上运行它(使用默认的Aero主题)时,它的行为会很奇怪,但通过在windows7上应用经典主题,它运行得很好。这背后的原因可能是什么?有人能澄清一下吗 我是否需要通过添加所需的更改来重新编译应用程序,以便在windows7操作系统上支持它?这些更改是什么,请提供msdn上

我们有一个MFC应用程序,它是用VC9.0编译器在VisualStudio2008专业版上开发的。该应用程序在windows server 2003、windows xp和2008 R2操作系统上运行良好。当我在windows7上运行它(使用默认的Aero主题)时,它的行为会很奇怪,但通过在windows7上应用经典主题,它运行得很好。这背后的原因可能是什么?有人能澄清一下吗


我是否需要通过添加所需的更改来重新编译应用程序,以便在windows7操作系统上支持它?这些更改是什么,请提供msdn上的任何参考链接。

您的程序中存在错误:很可能在代码中的某个地方,它依赖于某个操作系统函数以特定的方式执行某些操作,这在过去是正确的,但函数的文档无法保证,现在与Aero的行为不同


很抱歉,这不是很有帮助,但是没有简单的解决方法:您必须尝试缩小问题范围并进行调试。事情就是这样。

奇怪的是,这是怎么回事?它使用的是不推荐使用的功能还是未记录的功能?它是否取决于Aero中不同的内容(值/行为)?应用程序窗口必须显示缺少的单元格网格(通过使用Draw3dRect()调用创建),但如果我将缩放值更改为低于80%,则会显示。还有一件奇怪的事情是可停靠窗口显示为正常。