Это действительно возможно, вы можете взглянуть на сообщение WM_NCPAINT
, это версия, не относящаяся к области клиента, соответствующая версии сообщения WM_PAINT
. Это непростая задача, однако, поскольку вы не собираетесь рисовать всю полосу прокрутки самостоятельно, она может быть более простой.
Более того, вы можете найти эту статью [1] из Проект кода интересно, код написан на C ++ и не совсем хорошо отформатирован, но он должен дать некоторое представление о том, как как мог добиться отрисовки полосы прокрутки владельцем.
Снимок экрана с ранее упомянутым проектом в TCP.
Помимо первого проекта, который вам может показаться этот проект [2] интересным, он также снимает полосу прокрутки, я знаю, что вы хотите рисовать только сверху полосы прокрутки, но моя ставка заключается в том, также поможет вам, включая исходный код.
(источник: catch22.net )
Снимок экрана проекта Cool Scrollbar.
Это может помочь изучить исходный код VCL, чтобы получить информацию о положении кнопок полосы прокрутки и т. Д. Код можно найти в файле forms.pas, по крайней мере, так я выглядел из моего краткого поиска. Надеюсь, что все это может помочь. Удачи.
[1] http://www.codeproject.com/KB/dialog/skinscrollbar.aspx
[2] http://www.catch22.net/tuts/coolscroll