Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: помогите TrackBar  (Прочитано 15380 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Гала
Гость
« : 20-09-2004 06:33 » 

Неужели никто не знает как создать прозрачный TrackBar? Или это невозможно?
Записан
Серж
Гость
« Ответ #1 : 20-09-2004 07:35 » 

Гала, вот ссылка, как сделать прозрачным окно в Win2000 и XP:
http://www.bcbdev.ru/cbuilder/articles/Transparent%202000/Transparent%202000.htm
Записан
Гала
Гость
« Ответ #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
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #7 : 23-09-2004 08:35 » new

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

Гала
Гость
« Ответ #8 : 24-09-2004 16:09 » 

Серж и x77 - это можно сделать функциями WinAPI, кроме того можно сделать нестандартный компонент, куда добавить эти свойства. А создать такой TrackBar просто необходимо, иначе бы я действительно давно забросила эту проблему.
Записан
Гала
Гость
« Ответ #9 : 24-09-2004 16:18 » 

x77, если это действительно так можно сделать, то приведите, пожалуйста, пример. А то я попробовала и ничего не вышла... Может, что-то недопоняла?
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #10 : 24-09-2004 17:31 » 

Гала, допустим, на форме лежит Image1 с требуемой картинкой. в каком-нить Paint'е рисуем линейку прокрутки нужного размера и вида, на Image1 кладём Image2 и загружаем в него эту линейку. делаем Image2 прозрачным. в том же Paint'е рисуем бегунок. ставим на Image2 Image3, в который загружаем бегунок и тоже делаем его прозрачным. теперь меняя Image3.Left  мы сымитируем движение бегунка по линейке прокрутки. вот и всё. я бы привёл пример, но там всё тривиально, рисовать надо дольше, чем писать код. ты скажи, что конкретно не выходит.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines