Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.044 c
8-1142597048
Lordalexander
2006-03-17 15:04
2006.10.08
Уменьшеть картинку


2-1158667789
KyRo
2006-09-19 16:09
2006.10.08
Залипание клавиш


15-1158331629
KenZo
2006-09-15 18:47
2006.10.08
Памагите перивести надпись на кофте


15-1157075691
Доктор Шмурге
2006-09-01 05:54
2006.10.08
Куда попадет Сатана после смерти?


15-1158556137
pavel_guzhanov
2006-09-18 09:08
2006.10.08
Программирование для КПК и мобильников





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский