Да, Aero лжет о размере окна, возвращаемого GetWindowRect (). Это довольно важный способ взлома приложений, без которого слишком много программ имели бы слишком маленькую клиентскую область. К сожалению, нет ни вызова API, ни записи манифеста, которую можно использовать, чтобы отключить ложь. Единственный способ - установить версию Windows в заголовке EXE и отметить ее как совместимую с Vista.
Это можно сделать с помощью Editbin.exe в событии после сборки:
set pathsave=%path%
set path=$(devenvdir);$(devenvdir)..\..\vc\bin
editbin.exe /subsystem:windows,6.0 "$(targetfilename)"
set path=%pathsave%
Помните, что после этого ваша программа не будет работать в XP.
ОБНОВЛЕНИЕ: теперь это делается по умолчанию в VS2012 и выше, когда вы настроены на .NET 4.5