为什么VB6.0表单显示为C#表单?

我有一个窗体的COM DLL。 此DLL由C#应用程序使用。 我为我的C#应用​​程序启用了视觉样式。 我不希望视觉样式应用于COM DLL的forms。 但是,当我运行我的应用程序和Lanuch COM DLL的forms,它有视觉风格应用到它。 我将如何防止它?

许多人build议使用清单。 但是,无论我在互联网上看到什么样的清单,他们都使用通用控件6.如何创build使用通用控件5.0的清单? 有些人还build议使用ActivationContext。 但是,这也需要使用常规控件5.0的正确清单吗?

请提出一些build议。

如果您有一个窗体句柄(来自COM DLL),那么您可以使用Win32 API禁用该窗体上的可视化样式:

SetWindowTheme( hwnd, "", "" ); 

我相信你将不得不P /调用的API。 定义如下:

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