Кнопки старого стиля приложения MFC и индикаторы выполнения

Я только что обновил приложение mfc vs2010 до vs2012, и у меня возникли проблемы, когда новые блестящие кнопки окон и индикаторы не отображаются, они отображаются как кнопки в стиле Windows 2000.

У меня есть следующий код в моем файле stdafx.h:

#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

я звоню InitCommonControlsEx и мне не нужен файл манифеста, насколько я понимаю, чтобы появился новый стиль. Есть идеи?

1 ответ

Я опаздываю к игре, но для меня проблема заключалась в небольшом параметре компоновщика под названием /ALLOWISOLATION ( описание здесь).

Этот параметр компоновщика должен быть установлен на Yes иначе манифесты даже не будут рассматриваться. И никакой манифест означает, что общие средства управления v5.82 DLL будет загружен вместо версии v6.

По сообщениям о загрузке / выгрузке модуля отладчика видно, относится ли это к вам (номер версии записывается вместе с записью).

Странно то, что приложение все еще оказалось "наполовину тематическим". Например, вы можете переключаться между темами XP и Office, но, например, кнопка будет лишена любого современного стиля. Вероятно, другая DLL (uxtheme?).

Также изображения из списка изображений будут выглядеть неровными (без альфа-канала, даже если значки были строго 32bpp).

Другие вопросы по тегам