ActiveX в IE. Диалоговое окно не отображает XP Visual Style
У меня есть элемент управления ActiveX в IE (7). Когда он показывает диалоговое окно, диалоговое окно не отображается в визуальном стиле XP. Я пробовал встраивать манифесты безрезультатно. У кого-нибудь есть идеи? Кстати, диалоговые окна были реализованы с использованием wtl.
3 ответа
Создайте свою dll с помощью #define ISOLATION_AWARE_ENABLED 1. Или поместите директиву компилятора /D ISOLATION_AWARE_ENABLED=1. Не забудьте, что манифест должен быть вставлен с идентификатором 2.
Более подробная информация здесь: http://msdn.microsoft.com/en-us/library/aa815321%28VS.85%29.aspx
Кстати, диалоговое окно, отображаемое из ActiveX, созданного с этими настройками, будет очищено, даже если этот ActiveX встроен в исполняемый файл, созданный без манифеста.
Возможно, вы захотите попробовать установить Skinning WTL в Code Project.
Я думаю, что это происходит в результате того факта, что IE читает элемент управления, предоставляемый через COM, в то время как.NET использует свой собственный apprach, где он читает из файла манифеста.
Попробуйте вызвать Application.EnableVisualStyles до загрузки формы. Это сработало для меня.