2013-02-25 42 views
1

首先,我製作了一個新窗體並將其顏色設置爲clWhite。然後,我投了一個TPageControl並添加了2個新頁面。一切都很好,一切的背景都是白色的(除了非活動標籤頁頭)。但是,然後在頁面控制上,我將屬性TabPosition更改爲tpLeft,並將選項卡標題更改爲默認的窗口顏色,而其他所有內容都保持爲白色。當TabPosition爲tpLeft時,TPageControl標籤顯示錯誤的顏色和樣式

TabPosition = tpTop

Tabs on Top

TabPosition = tpLeft

Tabs on Left

有沒有什麼辦法可以讓它正確顯示時,標籤頁都在左邊?

+2

您需要自己繪製它們。 – TLama 2013-02-25 11:47:52

+2

爲什麼你將窗體的顏色設置爲'clWhite'?您正在對最終用戶的顏色方案進行假設。如果最終用戶在黑色主題上使用白色,則只會忽略該設置。作爲一般規則,您應該避免編碼顏色並讓系統遵守用戶的偏好。 – 2013-02-25 13:00:04

+0

@David請不要評論我的問題。如果我沒有將它改爲白色,我就不會注意到它。 – 2013-02-25 13:17:35

回答

2

內置控件中沒有任何內容允許您更改此行爲。事實上,您正在觀察的行爲是基礎Windows控件的設計行爲。您可以通過使用TCS_VERTICAL樣式創建原始Win32 SysTabControl32控件來驗證此操作。所以控制已經正確顯示。

如果您確實希望更改外觀,您需要自己繪製標籤。

+1

據我所知,當使用'TCS_VERTICAL'風格並啓用視覺樣式時,字幕未正確顯示時出現錯誤。而這個錯誤似乎只是在使用'TCS_VERTICAL'控制樣式時,通過禁用視覺樣式支持來解決MS問題。 [+1] – TLama 2013-02-25 12:03:19

+0

我會說同樣的音符*「如果您使用視覺樣式,則不支持此風格。」*與['TCS_RIGHT'](http://msdn.microsoft.com/en-us/ library/windows/desktop/bb760549(v = vs.85).aspx#TCS_RIGHT)樣式也應該寫入'TCS_VERTICAL'。 – TLama 2013-02-25 12:11:28

相關問題