Применение визуальных стилей к диалогам MFC, вызываемым из программы на C# .net
У меня есть программа.NET C#, которая ссылается на некоторые библиотеки C++/CLI, которые, в свою очередь, могут запускать некоторые устаревшие формы / диалоги MFC. Однако при запуске этих диалогов они не запускаются с текущей темой Windows, то есть с визуальными стилями. Они открываются как старый стиль Windows 98.
Эти диалоги запускаются с визуальными стилями, если мы запускаем через оригинальный проект C++/CLI с комментарием прагмы, включенным в stdafx.h проекта Application Exe.
Я попробовал несколько предложений в упомянутой статье Microsoft о применении визуальных стилей к проектам C++. Однако ни один из них не работает, так как я предполагаю, что статья нацелена на чистое решение C++, а не на гибридное решение C#, ссылающееся на старые диалоги MFC.
tl; dr Может запускать диалоги MFC из программы на C#, но диалоги не имеют визуального оформления.
1 ответ
"Если вы хотите, чтобы ваше приложение использовало визуальные стили, необходимо добавить манифест приложения или директиву компилятора, которая указывает, что ComCtl32.dll версии 6 следует использовать, если она доступна".
Источник: https://msdn.microsoft.com/en-us/library/windows/desktop/bb773175(v=vs.85).aspx
Манифест приложения должен работать.