我有一个COM DLL,它有一个表单。此DLL由C#应用程序使用。我为我的C#应用程序启用了Visual Styles。我不希望视觉样式应用于COM DLL的表单。但是,当我运行我的应用程序和lanuch COM DLL的表单时,它应用了视觉样式。我该如何预防?
很多人建议使用清单。但是,无论我在互联网上看到什么清单,它们都使用通用控件6.如何创建使用通用控件5.0的清单? 有些人还建议使用ActivationContext。但是,那也需要使用通用控件5.0的正确清单吗?
请提出建议。
答案 0 :(得分:3)
如果你有一个窗体的窗口句柄(来自COM DLL),那么你可以使用Win32 API禁用该窗体上的视觉样式:
SetWindowTheme( hwnd, "", "" );
我相信你必须P / Invoke API。这是定义:
[DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)]
public static extern int SetWindowTheme(
IntPtr hWnd,
String pszSubAppName,
String pszSubIdList);