我想为自定义绘制的绘图制作自己的滚动条,就像这张图片一样,最好的方法是什么?
滚动条应该:
你建议:
从头开始创建所有内容,处理分页,滚轮等。
尝试继承CScrollBar并自己绘图?
从我读过的内容来看,在MFC中自定义滚动条并不是一件容易的事,例如here)
答案 0 :(得分:0)
首先,这些必须是滚动条(或其他)控件,而不是窗口滚动条(用于滚动窗口)。
其次,声明“在MFC中自定义滚动条不是很容易”,只是部分正确。 MFC是Windows API的“瘦包装”,因此您最好参考Windows滚动条控件的文档。
然后是CScrollBar类,但是看了一下,实际上,它并没有提供比Windows滚动条更多的功能。至于您发布的链接中的示例是一个新的(自定义)控件(自己绘制所有内容),即字面意思是“从头开始”,而不是从CScrollBar继承任何内容。
因此,您必须查看Windows滚动条控件及其提供的内容。看了看,看到了一些东西。不幸的是,似乎没有所有者绘制功能。您可以处理WM_CTLCOLORSCROLLBAR
消息,但这只允许您更改颜色。
根据文档仅提供背景颜色。这似乎是唯一可能的自定义,除了SBM_ENABLE_ARROWS消息,它可以隐藏箭头。并没有褪色效果。如果这些对您来说足够了,您可以尝试使用Windows / MFC滚动条,否则请尝试编写自己的滚动条。