Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интерфейс как WinAmp, Срочно нужна помощь 
:(
    Опции темы
Coocky
Дата 24.1.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Ребята , подскажите либо статьями , либо примерами, либо еще чем, как можно создавать интерфейс, по типу Winamp?
Меня больше интересует, как делаются такие кнопочки, ползунки, полосы прокрутки.
Иначе я вылечу с работы..
Фирма пишет системные утилиты под Windows. А я DLL упаковываю в интерфейс. А этот интерфейс рисует дизайнер
Дебил, такое ощущение, что насмотрелся всяких приколов.
Очень надеюсь на помощь !!!!!


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
takedo
Дата 24.1.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: нет
Всего: 3



так через OWNERDRAW (например те же кнопки)


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
Dreamer_0x01
Дата 24.1.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата(Coocky @ 24.1.2006, 15:20 Найти цитируемый пост)

Меня больше интересует, как делаются такие кнопочки, ползунки, полосы прокрутки.

Мне кажется, это не кнопочки, не ползунки, и не полосы прокрутки. В смысле, не стандартные контролы.
Так что есть у меня такоечувство, что делалось это как Class XXX : public CWnd, и вперед...
Во всяком случае на Яве я такие ползунки рисовал сам, заняло написание подобного контрола не более часа....
Добавлено @ 16:25
Если присмотреться к тому, как Винамп меняет скины, а особенно посмотреть их содержимое - то видно в принципе структуру этих компонентов. Во всяком случае - что на чем рисуется.
Добавлено @ 16:26
То есть конечно не программную структуру, а чисто логическую.


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 24.1.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(takedo @ 24.1.2006, 16:19 Найти цитируемый пост)

так через OWNERDRAW (например те же кнопки)

Это свойство имеют не все котролы. К тому же действие ее весьма ограничено.Так кнопку можно всю перерисовать, а вот для CListBox или CListCtrl-только строки... smile
Цитата(Dreamer_0x01 @ 24.1.2006, 16:21 Найти цитируемый пост)

Так что есть у меня такоечувство, что делалось это как Class XXX : public CWnd, и вперед...
Во всяком случае на Яве я такие ползунки рисовал сам, заняло написание подобного контрола не более часа....

Старина, выручай-не мог бы ты, к примеру, хотя бы обьяснить, как можно, ну скажем полосу прокрутки сделать.Чисто графически. Функциональность я и сам сделаю...


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Coocky
Дата 24.1.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Вот ,ребята, делюсь с вами первыми данными-помогли на соседнем форуме
http://rsdn.ru/article/files/Classes/skindlg.xml
Интересно...
Но вопрос все равно в силе..


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 25.1.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата(Coocky @ 24.1.2006, 18:33 Найти цитируемый пост)

Старина, выручай-не мог бы ты, к примеру, хотя бы обьяснить, как можно, ну скажем полосу прокрутки сделать.Чисто графически


Присмотрись к полосе прокрутке в Винампе (и не только) так сказать "через увеличительное стекло". И посмотри, какие явно выраженные элементы ты видишь.
Ты увидишь в общем-то три различных элемента - собственно, саму полосу прокрутки, сам ползунок, и концевые стрелочки. И все это нарисовано с помощью линий и градиентов.
А теперь переносим все это в свой так называемую заготовку контрола. Для этого для него определяем структуру, в которую ты заносишь все управляющие параметры отрисовки - цвета границ, цвета фона, цвета градиента, параметры градиента, "объемность"/плоскость, "хот трек"/обычный вид, ну и так далее, чему только фантазия будет способствовать.
Далее. Размеры контрола ты знаешь. Исходя их этого, ты сразу можешь нарисовать все, что касается рамок, объемностей и т.д - простыми лайнами с нужным тебе цветом. Но это рисуется после заполнения фона, а фон ты заполняешь как раз градиентом (уж не знаю, возможно ли на С рисовать градиент, но на Яве я градиенты рисовал вручную с помощью множества линий с плавно изменяющимся цветом, что делалось кстати весьма быстро, потому что все эти действия я выполнял лиьш при первой перерисовке, сохранял имиджи этих областей, и далее шлепал уже готовыми растровыми массивами). Ну и как ранее оговаривалось, поверх фона рисуешь всякие там рамочки, "объемные канавки", и т.д. Далее на этой фигне тебе нужно отобразить бегунок и концевые стрелочки. Для этого я бы определил некоторую битовую маску, которая характеризует вид рисунка, изображаемого на них. И эту битовую маску отмастшабировал на свой размер бегунка(концевой стрелочки). Ну и согласно этой битовой маске,опть же, рисуешь кучу линий разными тонами. Либо можно взять за основу битмап, и пользуясь методами интерполяции (тут бикубическая совсем не обязательна, линейной вполне хватит), отмасштабровать битмап на свой размер контрола.

Если трудно вяжется в голове, могу в принципе попробовать нарисовать что-то подобное. Естественно , в несколько упрощенном виде.

Цитата(Coocky @ 24.1.2006, 18:33 Найти цитируемый пост)

Цитата(takedo @ 24.1.2006, 16:19 )

так через OWNERDRAW (например те же кнопки)


Это свойство имеют не все котролы. К тому же действие ее весьма ограничено.Так кнопку можно всю перерисовать, а вот для CListBox или CListCtrl-только строки...


Это еще полбеды. Вот как КомбоБокс отрисовать грамотно - я до сих пор не сообразил =)






--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
rsm
Дата 25.1.2006, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Coocky
Возьми исходники CoolPlayer'а, посмотри как оно там реализовано smile

Это сообщение отредактировал(а) rsm - 25.1.2006, 00:46
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.