是的,Aero关于GetWindowRect()返回的窗口大小.这是一个相当重要的appcompat hack,没有它太多程序会有一个太小的客户区.不幸的是,既没有API调用也没有可以用来关闭谎言的清单条目.唯一的方法是在EXE标题中设置Windows版本并标记它与Vista兼容.
您可以在postbuild事件中使用Editbin.exe执行此操作:
set pathsave=%path%
set path=$(devenvdir);$(devenvdir)..\..\vc\bin
editbin.exe /subsystem:windows,6.0 "$(targetfilename)"
set path=%pathsave%
Run Code Online (Sandbox Code Playgroud)
请注意,此后您的程序将不再在XP中运行.
更新:现在默认情况下在VS2012中完成,当您以.NET 4.5为目标时启动