![]() |
|
|
![]()
|
|
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Ребята , подскажите либо статьями , либо примерами, либо еще чем, как можно создавать интерфейс, по типу Winamp?
Меня больше интересует, как делаются такие кнопочки, ползунки, полосы прокрутки. Иначе я вылечу с работы.. Фирма пишет системные утилиты под Windows. А я DLL упаковываю в интерфейс. А этот интерфейс рисует дизайнер Дебил, такое ощущение, что насмотрелся всяких приколов. Очень надеюсь на помощь !!!!! -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
так через OWNERDRAW (например те же кнопки)
-------------------- я не гольфист - я хоккеист |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Мне кажется, это не кнопочки, не ползунки, и не полосы прокрутки. В смысле, не стандартные контролы. Так что есть у меня такоечувство, что делалось это как Class XXX : public CWnd, и вперед... Во всяком случае на Яве я такие ползунки рисовал сам, заняло написание подобного контрола не более часа.... Добавлено @ 16:25 Если присмотреться к тому, как Винамп меняет скины, а особенно посмотреть их содержимое - то видно в принципе структуру этих компонентов. Во всяком случае - что на чем рисуется. Добавлено @ 16:26 То есть конечно не программную структуру, а чисто логическую. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Это свойство имеют не все котролы. К тому же действие ее весьма ограничено.Так кнопку можно всю перерисовать, а вот для CListBox или CListCtrl-только строки... Старина, выручай-не мог бы ты, к примеру, хотя бы обьяснить, как можно, ну скажем полосу прокрутки сделать.Чисто графически. Функциональность я и сам сделаю... -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Вот ,ребята, делюсь с вами первыми данными-помогли на соседнем форуме
http://rsdn.ru/article/files/Classes/skindlg.xml Интересно... Но вопрос все равно в силе.. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Присмотрись к полосе прокрутке в Винампе (и не только) так сказать "через увеличительное стекло". И посмотри, какие явно выраженные элементы ты видишь. Ты увидишь в общем-то три различных элемента - собственно, саму полосу прокрутки, сам ползунок, и концевые стрелочки. И все это нарисовано с помощью линий и градиентов. А теперь переносим все это в свой так называемую заготовку контрола. Для этого для него определяем структуру, в которую ты заносишь все управляющие параметры отрисовки - цвета границ, цвета фона, цвета градиента, параметры градиента, "объемность"/плоскость, "хот трек"/обычный вид, ну и так далее, чему только фантазия будет способствовать. Далее. Размеры контрола ты знаешь. Исходя их этого, ты сразу можешь нарисовать все, что касается рамок, объемностей и т.д - простыми лайнами с нужным тебе цветом. Но это рисуется после заполнения фона, а фон ты заполняешь как раз градиентом (уж не знаю, возможно ли на С рисовать градиент, но на Яве я градиенты рисовал вручную с помощью множества линий с плавно изменяющимся цветом, что делалось кстати весьма быстро, потому что все эти действия я выполнял лиьш при первой перерисовке, сохранял имиджи этих областей, и далее шлепал уже готовыми растровыми массивами). Ну и как ранее оговаривалось, поверх фона рисуешь всякие там рамочки, "объемные канавки", и т.д. Далее на этой фигне тебе нужно отобразить бегунок и концевые стрелочки. Для этого я бы определил некоторую битовую маску, которая характеризует вид рисунка, изображаемого на них. И эту битовую маску отмастшабировал на свой размер бегунка(концевой стрелочки). Ну и согласно этой битовой маске,опть же, рисуешь кучу линий разными тонами. Либо можно взять за основу битмап, и пользуясь методами интерполяции (тут бикубическая совсем не обязательна, линейной вполне хватит), отмасштабровать битмап на свой размер контрола. Если трудно вяжется в голове, могу в принципе попробовать нарисовать что-то подобное. Естественно , в несколько упрощенном виде. Это еще полбеды. Вот как КомбоБокс отрисовать грамотно - я до сих пор не сообразил =) -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: нет Всего: 62 |
Coocky
Возьми исходники CoolPlayer'а, посмотри как оно там реализовано Это сообщение отредактировал(а) rsm - 25.1.2006, 00:46 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |