Возможно, ваш EXE-файл помечен для запуска в режиме совместимости с предыдущей версией ОС.Щелкните правой кнопкой мыши на EXE, выберите «Свойства», затем убедитесь, что на вкладке «Совместимость» все отключено.(Особенно «Отключить визуальные темы» и «Запустить эту программу в режиме совместимости для ...»)
Если это не удастся ...
Это необычно - нужно что-то делать вообще, но попробуйтеэто в начале приложения:
SetThemeAppProperties (STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS)
Если это не сработает, попробуйте явно установить тему для своего окна:
SetWindowTheme (hWnd, "WINDOW", NULL);
FWIW, я вставил ваш код в новый проект Visual Studio 2008, созданный с помощью мастера "Проект Win32",и он вышел с границей Windows 7.На самом деле, чтобы получить границу, вам обычно нужно , а не .
В создаваемом вами EXE-файле может быть что-то необычное, например, флаг в заголовке EXE-файла.установить неправильно.Например, если в нем не указано, что это приложение с графическим интерфейсом Windows, или, возможно, есть некоторые поля версий ...
Манифест EXE также может сыграть свою роль, но я только что попытался полностью удалить манифест, и мойПрограмма все еще имеет тематическое окно, так что, вероятно, это не так.