是否可以在标准控件的滚动条上绘画,如TMemo,TListbox等。?
我需要的是在滚动条上绘制一些基本形状,我试图避免从stratch实现整个滚动的东西。有什么指针吗? TIA!
答案 0 :(得分:10)
确实有可能,您可能需要查看WM_NCPAINT
消息,这是WM_PAINT
消息的非客户区对应版本。这不是一件容易的事,但是因为你不打算自己完成整个滚动条的绘制,所以它可能更直接。
您可能会发现this article [1]来自The Code Project的更多信息,代码是使用C ++编写的,并且格式不完全,但是它应该对如何有所了解实现滚动条的所有权。
TCP上提到的项目的屏幕截图。
除了你可能会发现this project [2]有趣的第一个项目之外,它还有所有者提取滚动条,我知道你只想在滚动条上绘制但我的赌注是这对你也有帮助,它还包括源代码。
Screenshot from Cool Scrollbar project http://www.catch22.net/img/coolscroll02.gif
Cool Scrollbar项目的屏幕截图。
检查VCL源代码以检索滚动条按钮位置等信息可能会有所帮助。代码可以在forms.pas文件中找到,至少从我的简短搜索看起来就是这样。希望这一切都可以提供任何帮助。祝你好运。
[1] http://www.codeproject.com/KB/dialog/skinscrollbar.aspx
[2] http://www.catch22.net/tuts/coolscroll
答案 1 :(得分:1)