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
有没有办法改变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