2011-10-01 22 views
0

我有一個使用IOleObjects並調用方法「SetClientSite」的代碼片段。舊樣式的IOleObject

pIOleObject.SetClientSite(this); 

現在我的問題是,按鈕顯示在舊的Windows風格,它是平坦的,沒有航空效果。我想我必須調用「SetColorScheme」,但我不知道如何使用LOGPALETTE。 我只需要這些IOleObjects在受信任的安全區中的web瀏覽器控件。 也許有人可以幫忙,謝謝。

+0

是對嵌入的OLE對象從一個單獨的EXE未來(分離工序),或從一個DLL服務器? –

+0

這是來自DLL服務器的OLE對象。 –

+0

什麼是主機可執行文件?這是用什麼構建的?它是否有主題控制? –

回答

1

您的OLE控件正在從其宿主應用程序中獲取其樣式選擇。您需要使用ID2 Win32 Manifest來創建激活上下文,聲明激活上下文以進入每個OLE方法,並確保您的控件是窗口而不是無窗口的,以便獲得您的主題。

或者,如果宿主exe也在您的控制之下,則只需使用ID1 Win32清單即可將主題控件設置爲整個流程的默認值。

http://msdn.microsoft.com/en-us/library/bb773175.aspx

馬丁

相關問題