需要MFC自定义滚动条的建议

需要MFC自定义滚动条的建议,mfc,scrollbar,Mfc,Scrollbar,我想为自定义绘制的绘图制作自己的滚动条,如下图,最好的方式是什么 滚动条应: 仅当鼠标悬停在其上时可见(淡入/淡出) 是绘图的x/y轴的一部分,如图所示 没有任何箭头按钮,只是拇指比正常的滚动条薄 你是否建议: 从头开始创建一切,处理分页、滚轮等 尝试继承CScrollBar并进行我自己的绘图 据我所知,在MFC中定制滚动条并不容易(例如)首先,它们必须是滚动条(或其他)控件,而不是窗口滚动条(用于滚动窗口) 其次,“在MFC中定制滚动条并不容易”这句话只是部分正确。MFC是Windows

我想为自定义绘制的绘图制作自己的滚动条,如下图,最好的方式是什么

滚动条应:

  • 仅当鼠标悬停在其上时可见(淡入/淡出)
  • 是绘图的x/y轴的一部分,如图所示
  • 没有任何箭头按钮,只是拇指比正常的滚动条薄
你是否建议:

  • 从头开始创建一切,处理分页、滚轮等

  • 尝试继承CScrollBar并进行我自己的绘图


  • 据我所知,在MFC中定制滚动条并不容易(例如)

    首先,它们必须是滚动条(或其他)控件,而不是窗口滚动条(用于滚动窗口)

    其次,“在MFC中定制滚动条并不容易”这句话只是部分正确。MFC是Windows API的“薄包装”,因此您最好参考Windows滚动条控件的文档

    然后是CScrollBar类,但我们看了一下,实际上,它并没有提供比Windows scrollbar更多的功能。至于您发布的链接中的示例,它是一个新的(自定义)控件(自行绘制所有内容),即字面上的“从头开始”,而不是从CScrollBar继承任何内容

    因此,您必须查看Windows滚动条控件及其提供的功能。确实看了一眼,没看到什么东西。不幸的是,似乎没有所有者绘制功能。您可以处理
    WM\u CTLCOLORSCROLLBAR
    消息,但这只允许您更改颜色


    根据文档,背景颜色仅为。除了可以隐藏箭头的SBM_ENABLE_ARROWS消息之外,这似乎是唯一可能的自定义。无褪色效应。如果这些对您来说足够了,您可以尝试Windows/MFC滚动条,否则请尝试编写自己的滚动条。

    您的屏幕截图中已经有一个滚动条。你为什么不定制一下呢?除此之外,我们没有任何信息,您希望您的滚动条托管在什么控件中。您实际上只有选项1,因为标准滚动条不支持所有者绘制,也不支持在链接文章中解释的
    WM\u PAINT
    /
    WM\u NCPAINT
    之外绘制。选项1不会那么复杂,但仍然是一个巨大的努力。尝试从
    CScrollBar
    继承不会减少工作量;相反,这将是一个不平凡的“黑客”假业主画和更难维护。对于淡入/淡出效果,请查看。