是否可以在滚动条上绘画?

utk*_*tas 7 delphi winapi scrollbar

是否可以在TMemo,TListbox等标准控件的滚动条上绘画.?

我需要的是在滚动条上绘制一些基本形状,我试图避免从stratch实现整个滚动的东西.有什么指针吗?TIA!

Tom*_*sen 11

确实有可能,您可能要查看该WM_NCPAINT消息,这是消息的非客户区对应版本WM_PAINT.这不是一件容易的事,但是因为你不打算自己完成整个滚动条绘图,所以它可能更直接.

进一步您可能会发现这篇文章[1]代码项目感兴趣,该代码是在C++和未格式化完全好,但它应该给一些想法,一个人如何可以实现滚动条的ownerdrawing.

The Code Project的项目截图
前面提到的TCP项目的屏幕截图.

除了第一个项目你可能会发现这个项目[2]很有趣,它也是所有者绘制的滚动条,我知道你只想在滚动条上绘制但我的赌注是这对你也有帮助,它包括源码代码也是如此.

Cool Scrollbar项目的屏幕截图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