#c #mfc #visual-studio-2019
#visual-studio-2010 #windows-7 #mfc
Вопрос:
В настоящее время мой диалог MFC выглядит как в Windows 98. Есть ли способ заставить его использовать активный стиль Windows 7 (aero)?
(Я использую C )
Ответ №1:
Попробуйте добавить это в Stdafx.h
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'"")
#else
#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")
#endif
#endif
Комментарии:
1. Спасибо, это хорошее решение, теперь я могу избежать всех хлопот по созданию и внедрению манифеста. Только что протестировано в приложении Win32, и оно работает так, как ожидалось.
2. Я знаю, что опоздал на два года, но это все еще применимо в приложениях MFC. Приветствую совет.
3. Есть ли надежда на проекты, использующие многобайтовые кодировки вместо unicode? Я не установил _UNICODE.
4. Привет @masche — судя по этому сообщению на форуме , похоже, что в многобайтовых приложениях есть проблемы с общими элементами управления версии 6. Кто-то упоминает проблему в элементе управления редактированием или, может
CEditView
быть. Другие в нижнем потоке говорят, что у них не было никаких проблем. Я полагаю, вы могли бы попробовать прокомментировать_UNICODE
ifdef и протестировать его.
Ответ №2:
Вам нужен манифест в вашем приложении с темой и убедитесь, что вы выполняете initcommon controlsex() .
Также взгляните на пакет функций MFC, также ниже приведена ссылка на примеры:
Ответ №3:
Убедитесь, что вы добавили действительный манифест в свое приложение.
Комментарии:
1. Я уже включил генерацию манифеста в свойствах (это было по умолчанию)
2. То, что манифест сгенерирован, не означает, что в нем указаны общие элементы управления 6. Откройте свой (не тематический) EXE-файл в обозревателе объектов Visual Studio с помощью File> Open и view, проверьте текущий манифест в его ресурсах.