2008-11-08 3 views
2

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

+0

не уверен, но посмотрел, как 75% диалогов для IE7/IE8 не могут делать XP-темы (и они сделаны Microsoft!) Я бы не слишком надеялся. – scunliffe 2008-11-08 13:52:33

ответ

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#_slate_set_the_isolation_aware_enabled_directive

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

0

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

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