37 votes

Pourquoi le formulaire VB6.0 s’affiche-t-il au format C #?

J'ai une DLL COM qui a une forme. Cette DLL est consommé par une application C#. J'ai activé les Styles Visuels pour mon application en C#. Je ne veux pas les Styles Visuels être appliquée pour COM DLL forme. Mais quand je lance mon application et lanuch COM DLL forme, il a des styles visuels appliqués. Comment vais-je l'empêcher?

Beaucoup de gens suggèrent à l'aide d'un manifeste. Mais, quelle que soit manifeste que je vois sur internet, ils utilisent tous les contrôles communs 6. Comment créer un manifeste qui utilise des contrôles communs 5.0 ? Certains suggèrent également l'aide de ActivationContext. Mais, cela aussi a besoin de corriger manifeste qui utilise des contrôles communs 5.0 droite?

S'il vous plaît suggérer quelque chose.

3voto

Peter Ruderman Points 6151

Si vous avez un handle de fenêtre pour le formulaire (à partir de la DLL COM), vous pouvez désactiver les styles visuels sur ce formulaire à l'aide de l'API Win32:

 SetWindowTheme( hwnd, "", "" );
 

Je crois que vous devrez p / invoquer l'API. Voici la définition:

 [DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
public static extern int SetWindowTheme(
   IntPtr hWnd,
   String pszSubAppName,
   String pszSubIdList);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X