![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TrackBar и рамка фокуса [D7]
trackbar © (2006-08-23 19:25:00)Как бы избавиться от некрасивой пунктирной рамки, которая появляется когда TrackBar находится в фокусе? Подскажите куда копать.
tButton (2006-08-29 10:50:00) [1]
> DVM © (29.08.06 10:45) [14]
я был не понят
Дельфи под рукой нету
описаный метод использовал однажды и давно
поэтому импровизирую по памяти
TrackBar1OnPaint(Sender: tObject);
...
TrackBar1.Canvas.DrawFocusRect
...
и будет вам счастье
без заморочек.
DVM (2006-08-29 10:45:00) [2]
> помоему должен быть метод который рисует этот самый пунктирный
> прямоугольник
Обработчик WM_PAINT
tButton (2006-08-29 10:42:00) [3]
> Sam Stone © (23.08.06 20:22) [5]
> тут много слишком нюансов ведь надо. поднимать цвета которые
> под обводкой и т.д., по моему тоже крайний вариант совершенно.
есть такая тема с XORом
помнится где-то он мне помогал от рамки избавится
помоему должен быть метод который рисует этот самый пунктирный прямоугольник
только не помню у кого он
суть в том, что если отрисовать его ещё раз
то он "исчезнет"
попробуй на рабочем столе рамку выделения растянуть так, чтоб в ширину(/высоту) она была 0пкс
при определённой высоте(/ширине) рамка будет исчезать.
DVM (2006-08-29 10:12:00) [4]
> но мне ведь надо теперь отрисовать без фокусной рамки?
Рисовать придется весь контрол самому, подставив свою оконную процедуру и самомтоятельно обрабатывая сообщения WM_PAINT и WM_ERASEBKGND.
trackbar (2006-08-29 07:16:00) [5]хм, отловить сообщение WM_PAINT у контрола (класс обертка надо стандартным) я могу, но мне ведь надо теперь отрисовать без фокусной рамки? выполнив Invalidate понятное дело фокус отрисуется... снимать фокус, отрисовывать, возвращать? я запутался (
DVM (2006-08-24 10:10:00) [6]
> TTrackBar рисуется функциями винды. тут никакого Paint'a
> перекрыть не выйдет, я так понял.
Выйдет, выйдет. Как и любое другое сообщение.
trackbar (2006-08-24 05:16:00) [7]PSPF2003 © (23.08.06 20:38) [8]
платные ) религия не позволяет.
PSPF2003 (2006-08-23 20:38:00) [8]
> нужны именно стандартные контролы
Ksdev ThemeEngine
Стандартные , только с другой раскраской.
Sam Stone (2006-08-23 20:36:00) [9]
> trackbar (23.08.06 20:25) [6]
Чем не нравится TrackBar.Parent.Color? Или В любом случае получить цвет нужного пикселя неcложно ) Разве что у тебя градиентная заливка на форме.
trackbar (2006-08-23 20:25:00) [10]PSPF2003 © (23.08.06 19:51) [4]
вариант забавный, но не удобный. нужны именно стандартные контролы, чтобы юзер чувствовал себя уютно.
Sam Stone © (23.08.06 20:22) [5]
тут много слишком нюансов ведь надо. поднимать цвета которые под обводкой и т.д., по моему тоже крайний вариант совершенно.
может что Отцы скажут? я чувствую что ответ лежит на поверхности.
Sam Stone (2006-08-23 20:22:00) [11]А ручками в OnPaint не получится зарисовать обводку поверх имеющейся?
PSPF2003 (2006-08-23 19:51:00) [12]Создай свой TTrackBar
trackbar (2006-08-23 19:39:00) [13]Сделал самый простой вариант, но он мне жутко не нравится - передаю фокус на иной контрол в событии OnChange.
trackbar (2006-08-23 19:33:00) [14]TTrackBar рисуется функциями винды. тут никакого Paint'a перекрыть не выйдет, я так понял.
PSPF2003 (2006-08-23 19:30:00) [15]Смотри метод Paint