Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.190.159.10] |
|
Сообщ.
#1
,
|
|
|
Ребята не ругайтесь сильно тут есть похожая тема но ответа на ней нет нужного мне. Собственно что нужно.
Взять за основу ListBox к примеру и нарисовать свой скрол бар. Идеи как это сделать есть вот вопросы. Скол бар у ListBox, Memo, TreeView это всего лишь рисунок vcl или же это окна от виндовс? Если перехватить сообщение WM_NCPAINT тогда надо все все самому рисовать. Но тогда как знать какой именно итем рисовать? С какой позиции? Еще как подсчитывать перемещение скрол бара во всех случаях действий пользователя? |
Сообщ.
#2
,
|
|
|
Где то вычитал что скролы это только рисунок. У меня появилась идея дать перерисоватся листбоксу как ему надо, затем поверх скролов нарисовать свои. Теперь вопрос как не дать среагировать старым скролам? И как при нажатии на скрол заставить перерисоватся компоненту Все же лучше я думаю рисовать все самому потому nxj фон еще желательно изменить.
|
Сообщ.
#3
,
|
|
|
Чего проще взять и посмотреть исходники VCL StdCtrls.pas, класс TListBox ? )
|
Сообщ.
#4
,
|
|
|
Цитата RuSA @ Чего проще взять и посмотреть исходники VCL StdCtrls.pas, класс TListBox ? ) Я посмотрел и мне пришла в голову идея как это все сделать. Перехватываешь WM_NCPAINT там рисуем фон если надо. Перехватить метод procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM; Там рисовать итемы. Только одно я не разобрал. Вот я догадываюсь что по сообщению mouse down идет прокрутка мне значит надо отловить собщение. Но как прокручивать? Где это свойство находтся(переменная), я так понимаю надо у WinControl его изменять верно? |