CMFCTabCtrl颜色自定义

时间:2015-04-28 16:38:28

标签: colors tabs mfc color-scheme

有没有办法改变CMFCBaseTabCtrl的线条和背景颜色?

我可以通过SetTabBkColor(...)SetAutoColors(...)更改标签颜色,但控件的标题和行仍为灰色。

SetSysColors(...)不是一个选项,因为它会为整个操作系统全局更改颜色。

基本上我们需要应用一些精简/深色配色方案。我找不到更改标签控件背景和线条颜色的方法。当标签背景颜色由SetTabBkColor(...)设置时,它会留下标签边框附近的空间。

此外,预计SetActiveTabColor(...)将更改活动标签的背景,但它几乎没有任何内容。

并且无法更改活动选项卡的文本颜色。我相信这些东西是可定制的,但无法找到。

enter image description here

1 个答案:

答案 0 :(得分:1)

从CMFCVisualManager的当前实例中检索颜色。

使用CMFCVisualManager :: GetTabFrameColors。还有其他一些管理器功能,如OnEraseTabsFrame和OnEraseTabsArea。

因此,从您喜欢的视觉管理器派生出您自己的视觉管理器。覆盖特定功能,以便您可以更改颜色和行为。

没有其他办法。刚进入void CMFCTabCtrl :: OnDraw(CDC * pDC)的源代码

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \ afxtabctrl.cpp