Гала
Гость
|
|
« : 20-09-2004 06:33 » |
|
Неужели никто не знает как создать прозрачный TrackBar? Или это невозможно?
|
|
|
Записан
|
|
|
|
Серж
Гость
|
|
« Ответ #1 : 20-09-2004 07:35 » |
|
|
|
|
Записан
|
|
|
|
Гала
Гость
|
|
« Ответ #2 : 21-09-2004 16:50 » |
|
Серж, спасибо, но это мне не помогло... Объясню суть подробнее. На форме находится Image1(с загруженной картинкой), а на Image1 находится TrackBar. Так вот необходимо, чтобы этот самый TrackBar был прозрачным. Свойства transparent у него, к сожалению нет... А сделать его прозрачным необходимо, т.к. иначе не видно картинки на Image1. Пожалуйста ответьте, как это сделать. Мне это дейсвительно необходимо.
|
|
|
Записан
|
|
|
|
Серж
Гость
|
|
« Ответ #3 : 22-09-2004 06:48 » |
|
Гала, а почему не помогло? Если подставить в функции из статьи handle Trackbara?
|
|
|
Записан
|
|
|
|
Серж
Гость
|
|
« Ответ #4 : 22-09-2004 09:56 » |
|
В описании функции CreateWindowEx сказано следующее: WS_EX_LAYERED Windows 2000/XP: Creates a layered window. Note that this cannot be used for child windows. Also, this cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. TrackBar безусловно child window (родитель - основная форма). Поэтому предложенный метод безусловно не проходит. Видимо, нужно самому нарисовать форму в виде трекбара, и ее самому отрисовывать, как нравится, в том числе и в прозрачном виде.
|
|
|
Записан
|
|
|
|
Гала
Гость
|
|
« Ответ #5 : 22-09-2004 14:37 » |
|
>Видимо, нужно самому нарисовать форму в виде трекбара, и ее самому отрисовывать, как нравится, в том числе и в прозрачном виде. - По видимому, да. Но как?
|
|
|
Записан
|
|
|
|
Серж
Гость
|
|
« Ответ #6 : 22-09-2004 14:58 » |
|
Гала, это все сложно, по-моему, овчинка не стоит выделки, проще изменить интерфейс приложения. Если же очень хочется это сделать, то надо самому изготовить окно, отработать все необходимые сообщения, в том числе WM_PAINT, движение бегунка и т.п. И запускать обязательно, как отдельную форму. Наверное, можно где-то найти похожие исходники, но я бы не стал мучаться.
|
|
|
Записан
|
|
|
|
x77
Модератор
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #7 : 23-09-2004 08:35 » |
|
ну, сделай ещё две картинки поверх своей. одну - линейку прокрутки, вторую - бегунок. останется отлавливать нажатия мыши на "бегунке" и перемещать его поверх "линии прокрутки". кртинки сделать прозрачными несложно, ловить на них мыша - тоже.
|
|
|
Записан
|
|
|
|
Гала
Гость
|
|
« Ответ #8 : 24-09-2004 16:09 » |
|
Серж и x77 - это можно сделать функциями WinAPI, кроме того можно сделать нестандартный компонент, куда добавить эти свойства. А создать такой TrackBar просто необходимо, иначе бы я действительно давно забросила эту проблему.
|
|
|
Записан
|
|
|
|
Гала
Гость
|
|
« Ответ #9 : 24-09-2004 16:18 » |
|
x77, если это действительно так можно сделать, то приведите, пожалуйста, пример. А то я попробовала и ничего не вышла... Может, что-то недопоняла?
|
|
|
Записан
|
|
|
|
x77
Модератор
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #10 : 24-09-2004 17:31 » |
|
Гала, допустим, на форме лежит Image1 с требуемой картинкой. в каком-нить Paint'е рисуем линейку прокрутки нужного размера и вида, на Image1 кладём Image2 и загружаем в него эту линейку. делаем Image2 прозрачным. в том же Paint'е рисуем бегунок. ставим на Image2 Image3, в который загружаем бегунок и тоже делаем его прозрачным. теперь меняя Image3.Left мы сымитируем движение бегунка по линейке прокрутки. вот и всё. я бы привёл пример, но там всё тривиально, рисовать надо дольше, чем писать код. ты скажи, что конкретно не выходит.
|
|
|
Записан
|
|
|
|
|