Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

TrackBar и рамка фокуса   Найти похожие ветки 

 
trackbar   (2006-08-23 19:25) [0]

Как бы избавиться от некрасивой пунктирной рамки, которая появляется когда TrackBar находится в фокусе? Подскажите куда копать.


 
PSPF2003 ©   (2006-08-23 19:30) [1]

Смотри метод Paint


 
trackbar   (2006-08-23 19:33) [2]

TTrackBar рисуется функциями винды. тут никакого Paint"a перекрыть не выйдет, я так понял.


 
trackbar   (2006-08-23 19:39) [3]

Сделал самый простой вариант, но он мне жутко не нравится - передаю фокус на иной контрол в событии OnChange.


 
PSPF2003 ©   (2006-08-23 19:51) [4]

Создай свой TTrackBar


 
Sam Stone ©   (2006-08-23 20:22) [5]

А ручками в OnPaint не получится зарисовать обводку поверх имеющейся?


 
trackbar   (2006-08-23 20:25) [6]

PSPF2003 ©   (23.08.06 19:51) [4]
вариант забавный, но не удобный. нужны именно стандартные контролы, чтобы юзер чувствовал себя уютно.

Sam Stone ©   (23.08.06 20:22) [5]
тут много слишком нюансов ведь надо. поднимать цвета которые под обводкой и т.д., по моему тоже крайний вариант совершенно.

может что Отцы скажут? я чувствую что ответ лежит на поверхности.


 
Sam Stone ©   (2006-08-23 20:36) [7]


> trackbar   (23.08.06 20:25) [6]

 Чем не нравится TrackBar.Parent.Color? Или В любом случае получить цвет нужного пикселя неcложно ) Разве что у тебя градиентная заливка на форме.


 
PSPF2003 ©   (2006-08-23 20:38) [8]


> нужны именно стандартные контролы

Ksdev ThemeEngine
Стандартные , только с другой раскраской.


 
trackbar   (2006-08-24 05:16) [9]

PSPF2003 ©   (23.08.06 20:38) [8]
платные ) религия не позволяет.


 
DVM ©   (2006-08-24 10:10) [10]


> TTrackBar рисуется функциями винды. тут никакого Paint"a
> перекрыть не выйдет, я так понял.

Выйдет, выйдет. Как и любое другое сообщение.


 
trackbar   (2006-08-29 07:16) [11]

хм, отловить сообщение WM_PAINT у контрола (класс обертка надо стандартным) я могу, но мне ведь надо теперь отрисовать без фокусной рамки? выполнив Invalidate понятное дело фокус отрисуется... снимать фокус, отрисовывать, возвращать? я запутался (


 
DVM ©   (2006-08-29 10:12) [12]


> но мне ведь надо теперь отрисовать без фокусной рамки?

Рисовать придется весь контрол самому, подставив свою оконную процедуру и самомтоятельно обрабатывая сообщения WM_PAINT и WM_ERASEBKGND.


 
tButton ©   (2006-08-29 10:42) [13]


> Sam Stone ©   (23.08.06 20:22) [5]
> тут много слишком нюансов ведь надо. поднимать цвета которые
> под обводкой и т.д., по моему тоже крайний вариант совершенно.

есть такая тема с XORом
помнится где-то он мне помогал от рамки избавится
помоему должен быть метод который рисует этот самый пунктирный прямоугольник
только не помню у кого он
суть в том, что если отрисовать его ещё раз
то он "исчезнет"
попробуй на рабочем столе рамку выделения растянуть так, чтоб в ширину(/высоту) она была 0пкс
при определённой высоте(/ширине) рамка будет исчезать.


 
DVM ©   (2006-08-29 10:45) [14]


> помоему должен быть метод который рисует этот самый пунктирный
> прямоугольник

Обработчик WM_PAINT


 
tButton ©   (2006-08-29 10:50) [15]


> DVM ©   (29.08.06 10:45) [14]

я был не понят
Дельфи под рукой нету
описаный метод использовал однажды и давно
поэтому импровизирую по памяти
TrackBar1OnPaint(Sender: tObject);
...
TrackBar1.Canvas.DrawFocusRect
...

и будет вам счастье
без заморочек.



Страницы: 1 вся ветка

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
2-1159109758
Серый
2006-09-24 18:55
2006.10.08
Поля Edit


2-1158928058
Crazy monkey
2006-09-22 16:27
2006.10.08
Как сократить запись?


1-1156455983
DevilDevil
2006-08-25 01:46
2006.10.08
Безопасное аварийное завершение приложения


15-1158158565
oldman
2006-09-13 18:42
2006.10.08
Новая задачка про взвешивание...


6-1147900537
AT
2006-05-18 01:15
2006.10.08
А как получить время на компе к примеру с ип ххх.ххх,ххх,ххх