Delphi 可以在滚动条上画画吗?

Delphi 可以在滚动条上画画吗?,delphi,winapi,scrollbar,Delphi,Winapi,Scrollbar,是否可以在标准控件(如TMemo、TListbox等)的滚动条上绘制 我所需要的只是在滚动条上画一些基本的形状,我试图避免从stratch实现整个滚动。有什么建议吗?蒂亚 确实有可能,您可能想看看WM\u NCPAINT消息,这是WM\u PAINT消息的非客户区对应版本。这不是一项容易的任务,但是,由于您不打算自己绘制整个滚动条,因此可能更直接 更进一步,您可能会从有趣的代码中发现代码是C++的,并不是完全格式化的,但是它应该给出关于如何实现滚动条的OutRead绘制的一些想法。 上述TCP

是否可以在标准控件(如TMemo、TListbox等)的滚动条上绘制


我所需要的只是在滚动条上画一些基本的形状,我试图避免从stratch实现整个滚动。有什么建议吗?蒂亚

确实有可能,您可能想看看
WM\u NCPAINT
消息,这是
WM\u PAINT
消息的非客户区对应版本。这不是一项容易的任务,但是,由于您不打算自己绘制整个滚动条,因此可能更直接

更进一步,您可能会从有趣的代码中发现代码是C++的,并不是完全格式化的,但是它应该给出关于如何实现滚动条的OutRead绘制的一些想法。
上述TCP项目的屏幕截图

除了你可能会感兴趣的第一个项目外,它还拥有绘制滚动条的功能,我知道你只想在滚动条上绘制,但我打赌这也会对你有所帮助,它还包括源代码


(来源:)

来自酷滚动条项目的屏幕截图

检查VCL源代码可能有助于检索有关滚动条按钮位置等信息。可以在forms.pas文件中找到代码,至少在我的简短搜索中是这样的。希望这些都能有所帮助。祝你好运

更新了链接,很酷的滚动条页面似乎已关闭,因此我已链接到存档版本

[1]
[2]

听起来您可以创建一个自定义控件(源自TMemo或其他任何东西)。您可以
覆盖该控件的
绘制
过程,如前所述

我不知道这是否能让你在滚动条上画画,但希望它能帮助你创建一个自定义控件

编辑
Tommy的答案和我的答案的组合:是一个使用
WindowProc
方法在自定义控件中处理消息的示例(尽管有点复杂)。如果您创建一个控件,您可能能够处理
WM\NCPAINT
消息。还有一些关于Delphi中Windows消息处理的详细信息。

链接已失效。你能修复它们吗?@RezaAghaei链接现在应该更新了