CMFCTabCtrl 颜色自定义

CMFCTabCtrl color customising

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

我可以通过 SetTabBkColor(...)SetAutoColors(...) 更改选项卡颜色,但控件的 header 和线条保持灰色。

SetSysColors(...) 不是一个选项,因为它会全局更改整个 OS.

的颜色

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

还预计 SetActiveTabColor(...) 会更改活动选项卡的背景,但它几乎什么也没做。

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

颜色是从 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