|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Надо сделать регулятор громкости с подложкой из volume level (уровень тек. сигнала). Мне нравится как это сделано на семерке (висте). Speakers (с индикатором уровня), Микрофон без индикатора. Очевидно слайдер. 1) Вопрос простой. В вертикальном положении он меняет от 0 до 100 сверху вниз, а не снизу вверх. Как сделать. Без извращений над числами. Снизу - 0 Сверху -100. Мне удалось сделать background прозрачным. Точно также как и с кнопками, только WM_CTLCOLORSTATIC вместо WM_CTLCOLORBTN, а код тот же. TBS_TRANSPARENTBKGND кстати для подложки из картинки не работает. Но вот как мне привести 2) Я не могу понять что они используют для индикатора и для "тени". Первое очевидное предположение - SelectRange=true. Но: -при попытке сузить ширину slider это сужает ширину range, но плохо сказывается на ползунке (скокоживается до неприличности). -ширина контура фокуса элемента и вид ползунка намекает на то, что используется ширина близкая к стандартной -одинаковый вид "индикатора" и "тени" на "аэро" и на "классике" наводит на мысль, что все таки там слайдер без range, а "индикатор" и "тень" -это не стандартные контролы, не Themes, а левая рисовка (хотя и разработчиками виндов). -У меня цвет индикатора синий (при включенной теме). Хотелось бы хотя бы красный в стиле progressbar. М.б. индикатор range -это автоматом прогрессбар привязан и надо получить его hwnd и применить стили? -Даже если там slider без range, то как изменить смещение ползунка? (в моем варианте он ближе к центру) И как тогда "индикатор" сделать? ProgressBar отдельно пририсовать? И как сделать "тень" ? Ну т.е. нужны любые соображения. Хочется сделать красиво и при этом без самопала. Да, еще. На XP-стиле индикатор который родной range почему-то не виден. Чтоб не быть голословным сделал два скрина специально на "аэро" и "на классике". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 08:45 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
1) Вопрос простой. В вертикальном положении он меняет от 0 до 100 сверху вниз, а не снизу вверх. Как сделать. Без извращений над числами. Снизу - 0 Сверху -100.Разработчики слайдера рассчитывали, что программисты в состоянии поизвращаться над числами в рамках школьного курса. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 14:21 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
AntonariyСнизу - 0 Сверху -100.что программисты в состоянии поизвращаться над числами Глупо конечно что нет простого способа его перевернуть. Вот извращение с кнопками вверх-вниз вправо-влево оне продумали, а то что он в вертикальном положении на голове стоит -нет. Хорошо, ну а по стилям-красивостям идей нет? Узкий прогрессбар хотя бы подложить под него и ползунок сместить от линии например хотя бы возможно (родной индикатор на 7-ке выглядит "не в тему", на XP вообще не показывает и похоже его жирное похабство - ширину и вид - убрать не представляется возможным)? Я пока сильно в сообщения и т.п. не лазил, но сдается мне что особо ничего не сделаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 15:06 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Ну, а примеров кастомизации Slider/Trackbar никто не подкинет. Ну, допустим, я хочу сделать область Range (индикатора) тоже прозрачной, изменить цвет индикатора, ширину индикатора. Custom Draw ? Нет у кого нибудь примеров? Все чего с ходу находится это .net. Что нибудь в духе: http://www.codeproject.com/Articles/57127/MediaSlider-An-Alternative-to-the-Trackbar-Control меня очень бы устроило. То как у меня на картинке не очень то смотрится, особенно когда рядом кнопки прозрачные. Ну т.е. например оставить только контуры Range (индикатора) и заменить синий цвет индикатора на красный. Ну, ползунок м.б. облагородить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 13:50 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Custom Draw у всех коммон контролов делается одинаково, отличия в некоторых сообщениях. Вот особенности Custom Draw в тракбаре, вот общий мануал по нему. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 14:45 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Antonariy, это я все просматривал. Я и то уже лучше ссылку нашел: http://www.rsdn.ru/forum/winapi/1647607.flat.aspx Но хотелось бы конкретный пример чтоб можно было пощупать. Я понимаю что код может быть на C, но хотя б чтоб картинка прилагалась к чему стремится. Net-овские примеры видел, но их понимать тяжело и не факт что это переводимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 17:24 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Ну, нарисовал я структуру, могу стереть фон например целиком, или стереть ползунок. а дальше что делать? Я понимаю, что рисовать на lvcd.hdc А че рисовать? Нужны какбы примеры-с. Я не худозник. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 18:33 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Из lvcd.hdc нужно получить размеры отрисовываемой области с помощью GetClipBox для начала. А рисовать с помощью BitBlt. Обычно берется рисунок из ресурсов и растягивается на область. Я как бы тоже не художник. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 19:12 |
|
Slider, он же Trackbar. Вопросы.
|
|||
---|---|---|---|
#18+
Antonariy, Я бы честно с ползунком бы чего нибудь придумал, TBCD_CHANNEL убрал бы нафик (он невменяемый), а на его место подложил бы вертик. progressbar, кот. на семерках отлично смотрится(правда его bkg тоже надо как то убрать) , а на классике можно цвет задать. Но у меня получается вот чего: ] Серый -это progressbar, т.е. вместо него фон родительской картинки. (Slider-сверху). Если сделать progressbar сверху, то ползунка видно не будет. Фон слайдера убирал как фон кнопки, ссылка на мою тему в начале. Грубо говоря, ползунок должен ползать поверх прогрессбара. Ну, ползунок например на 32-битную иконку поменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2012, 19:46 |
|
|
start [/forum/topic.php?fid=60&tid=2157478]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
216ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
3ms |
others: | 281ms |
total: | 608ms |
0 / 0 |