2010-10-31 61 views
2

我希望我的對話框(資源)在Win32/C應用中具有「現代」外觀/樣式,特別是其組合框。對於「現代」,我的意思是「下拉列表」類型的組合框看起來像一個堅實的按鈕,只有一個小的「箭頭」圖標在側面,而不是「舊」的外觀:平面編輯框與單獨箭頭按鈕。在VS對話框編輯器中,組合框看起來很「現代」。當我運行應用程序時,他們看起來「老」。我如何在對話框上強制使用「現代」風格?這是我試過了,白白:win32/C對話框:組合框的「現代」外觀/樣式

#include "commctrl.h" 
#include "Uxtheme.h" 
setDia = CreateDialog(NULL, MAKEINTRESOURCE(IDD_DIA_SET), win, DialogProc); 
SetWindowTheme(setDia, L"Explorer", NULL); 

我寫了幾個的Win32/C++應用程序及其對話框(也是一種資源)得到了「現代」看開箱即用,不用我做任何事情。 C和C++有什麼不同嗎?

回答

3

您很可能必須通過清單指定comctl32.dll的正確版本,尤其是選擇版本6(例如6.0.2900.5512)。有關詳細信息,請參閱以下MSDN文章: Enabling Visual Styles

+0

很酷,謝謝。看起來我甚至不需要清單:從該MSDN文章添加單個「#pragma comment」行來修復該問題。 – MrSparkly 2010-10-31 01:44:05