ActiveX в IE. Диалоговое окно не отображает XP Visual Style - PullRequest
2 голосов
/ 08 ноября 2008

У меня есть элемент управления ActiveX в IE (7). Когда он показывает диалоговое окно, диалоговое окно не отображается в визуальном стиле XP. Я пробовал встраивать манифесты безрезультатно. У кого-нибудь есть идеи? Кстати, диалоговые окна были реализованы с использованием wtl.

Ответы [ 3 ]

3 голосов
/ 14 декабря 2008

Создайте свою DLL с #define ISOLATION_AWARE_ENABLED 1. Или поместите директиву компилятора / D ISOLATION_AWARE_ENABLED = 1. Не забудьте, что манифест должен быть вставлен с идентификатором 2.

Больше информации здесь: http://msdn.microsoft.com/en-us/library/aa815321%28VS.85%29.aspx#_slate_set_the_isolation_aware_enabled_directive

Кстати, диалоговое окно, отображаемое из ActiveX, созданного с этими настройками, будет очищено, даже если этот ActiveX встроен в исполняемый файл, созданный без манифеста.

0 голосов
/ 30 ноября 2009

Я думаю, что это происходит из-за того, что IE читает элемент управления, предоставляемый через COM, в то время как .NET использует свой собственный apprach, который читает из файла манифеста.

Попробуйте вызвать Application.EnableVisualStyles перед загрузкой формы. Это сработало для меня.

0 голосов
/ 15 ноября 2008

Возможно, вы захотите попробовать Создание обложки диалога WTL в Code Project.

...