2008-11-08 8 views
2

J'ai un contrôle ActiveX dans IE (7). Lorsqu'elle affiche une boîte de dialogue, la boîte de dialogue n'apparaît pas dans le style visuel XP. J'ai essayé d'incorporer des manifestes en vain. Quelqu'un a une idée? à propos, les boîtes de dialogue ont été implémentées en utilisant wtl.ActiveX dans IE. Boîte de dialogue ne pas afficher XP Style visuel

+0

pas sûr, mais vu que 75% des boîtes de dialogue pour IE7/IE8 ne peuvent pas faire les thèmes XP (et ils sont fabriqués par Microsoft!) Je ne voudrais pas trop d'espoir. – scunliffe

Répondre

3

Créez votre dll aveC#define ISOLATION_AWARE_ENABLED 1. Ou mettez la directive du compilateur/D ISOLATION_AWARE_ENABLED = 1. Ne pas oublier manifeste doit être intégré avec id 2.

Plus d'infos ici: http://msdn.microsoft.com/en-us/library/aa815321%28VS.85%29.aspx#_slate_set_the_isolation_aware_enabled_directive

BTW, boîte de dialogue affichée à partir ActiveX construit avec ces paramètres sera écorché même si ce ActiveX est intégré dans l'exécutable construit sans manifeste .

0

Je pense que cela se produit en raison du fait que IE lit le contrôle exposé par COM alors que .NET utilise son propre apprach où il lit à partir d'un fichier manifeste.

Essayez d'appeler Application.EnableVisualStyles avant le chargement du formulaire. Cela a fonctionné pour moi.

Questions connexes