需要MFC自定义滚动条的建议
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要MFC自定义滚动条的建议相关的知识,希望对你有一定的参考价值。
我想为自定义绘制的绘图创建自己的滚动条,就像这个图像一样,最好的方法是什么?
滚动条应该:
- 仅当鼠标悬停在其上时才会显示(淡入/淡出)
- 成为图的x / y轴的一部分,如图中所示
- 没有任何箭头按钮,只有拇指更薄,而不是普通的滚动条
你会建议:
- 从头开始创建所有内容,处理分页,滚轮等。
- 尝试继承CScrollBar并自己绘图?
根据我的阅读,在MFC中自定义滚动条并不是很容易,例如here)
答案
首先,这些必须是滚动条(或其他)控件,而不是窗口滚动条(用于滚动窗口)。
其次,声明“在MFC中自定义滚动条不是很容易”,只是部分正确。 MFC是Windows API的“瘦包装”,因此您最好参考Windows滚动条控件的文档。
然后是CScrollBar类,但是看了一下,实际上,它并没有提供比Windows滚动条更多的功能。至于您发布的链接中的示例是一个新的(自定义)控件(自己绘制所有内容),即字面意思是“从头开始”,而不是从CScrollBar继承任何内容。
因此,您必须查看Windows滚动条控件及其提供的内容。看了看,看到了一些东西。不幸的是,似乎没有所有者绘制功能。您可以处理WM_CTLCOLORSCROLLBAR
消息,但这只允许您更改颜色。
并且根据文档仅提供背景颜色。这似乎是唯一可能的自定义,除了SBM_ENABLE_ARROWS消息,它可以隐藏箭头。并没有褪色效果。如果这些对您来说足够了,您可以尝试使用Windows / MFC滚动条,否则请尝试编写自己的滚动条。
以上是关于需要MFC自定义滚动条的建议的主要内容,如果未能解决你的问题,请参考以下文章