【发布时间】:2020-03-21 16:41:52
【问题描述】:
前提:我需要更改 MFC 中定义的默认 CScrollBar 的颜色(拇指 + 轨道 + 箭头),但经过一些研究后我意识到这并不是一件容易的事。
问题:如果我尝试在现有的滚动条上绘制会更好,还是应该从头开始创建一个新的滚动条控件?
- 如果我限制自己在上面绘图,我的优势是不必管理处理滚动条其他功能的所有消息(除了绘图),但要找到所有消息非常复杂windows 重绘栏的点,因为滚动条仅在
OnPaint()方法中不重绘。 - 如果我从头开始重做,我将不再有识别重绘条的所有点的问题......但另一方面,我应该从头开始重新实现所有滚动条功能。
我已经看过这个链接: https://www.codeproject.com/Articles/14724/Replace-a-Window-s-Internal-Scrollbar-with-a-custo 但建议的方法似乎不适用于较新版本的 Windows(从 Vista 开始)。
感谢任何建议,提前致谢。
【问题讨论】:
-
您在寻找this吗?
-
WM_CTLCOLORSCROLLBAR 绝对不完整。您无法通过此更改所有滚动条元素的颜色。
标签: c++ user-interface winapi mfc