37
我有一個COM DLL,它有一個窗體。該DLL由C#應用程序使用。我爲我的C#應用程序啓用了視覺樣式。我不希望將視覺樣式應用於COM DLL的形式。但是,當我運行我的應用程序和Lanuch COM DLL的窗體時,它會應用它的視覺樣式。我將如何防止它?爲什麼VB6.0窗體顯示爲C#窗體?
許多人建議使用清單。但是,無論我在互聯網上看到什麼樣的清單,它們都使用通用控件6.如何創建使用通用控件5.0的清單?有些人還建議使用ActivationContext。但是,這也需要使用通用控件5.0的正確清單嗎?
請提出建議。
SetWindowTheme(hwnd, "", "");
我相信你必須的P/Invoke:
你將不得不在你的vb6代碼中使用CreateActCtx。這很難得到正確的答案。在你的用戶界面中有不一致的風格是沒有意義的。 –
清單是每個進程。您需要爲您的窗口使用進程外COM主機。請注意,有些DLL的方法使用不同的清單,這需要主機應用程序的支持。 – Deanna
您可以嘗試使VB6 DLL中的表單與公共控件6清單一起工作。 [此VBAccelerator文章](http://www.vbaccelerator.com/home/VB/Code/Libraries/XP_Visual_Styles/Using_XP_Visual_Styles_in_VB/article.asp)是一個很好的起點 – MarkJ