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 до загрузки формы. Это сработало для меня.

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