2012-06-12 77 views
0

我爲XP樣式使用了清單,因此我所有的控件都使用新外觀。但是,如果我在Windows XP中運行我的程序,那麼我的ListView控件將顯示舊式平頭。此外,HDS_NOSIZING樣式不適用於標題。這似乎意味着XP使用的是舊的Common Controls 5.0版本的listview而不是6.0。XP樣式不適用於Windows XP中的ListView或ComboBox

我對這件事很困惑。我讀過Common Controls 6.00附帶的XP,那麼爲什麼我不能在XP中使用最新的ListView?

我在另一個頁面上閱讀,XP樣式只適用於Common Control 5.0 ListViews的XP,但不適用於6.0。所以如果它確實使用5.0,那麼它不應該將新的XP樣式應用於列表視圖嗎?

實際上是否可以使用某些控件的Common Controls 6.0版本和其他版本的5.0版本?

還有一件事。在XP中,我的ComboBox下拉列表像普通組合框一樣出現,而不像他們在Win7中那樣按鈕。這是正常的嗎?

感謝您的幫助,因爲我發現整個Common Controls 6.0 + XP樣式概念很混亂。

+1

什麼語言?你正在調用'InitCommonControls()'嗎? –

+0

「它只適用於v5通用控件」是一個VB6的東西。 VB公共控件6不使用標準的win32控件,因此不具備主題支持,而v5使用標準的win32控件,因此將使用清單中指定的任何版本。 – Deanna

回答

1

您希望在Windows XP上看到Windows 7風格。這是行不通的。 XP 顯示平面標題,HDS_NOSIZING只支持Vista和以上。類似地,帶有CBS_DROPDOWNLIST的組合框僅在Vista和更高版本中顯示爲按鈕。

很可能,您的程序完全按照它應該的方式工作,並顯示正確的XP樣式。您可以仔細檢查調試器。 Debug + Windows + Modules並查看加載的comctl32.dll的版本號

相關問題