Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как стилизовать окно, как у iTunes, Steam, Adobe CS5, итд..... 
:(
    Опции темы
st4lk3r0k
Дата 12.6.2013, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток smile

Как и нписанно в названии темы, мне интересно узнать, как делаются стили окон, как например у всех продуктов Adobe, iTunes, Steam, Opera, Chrome, итд...
Гуглом пользовался, но неудачно :(

Чтобы лучше было понятно, чего я собственно хочу, вот эскиз:
user posted image

Окно, будет масштабируемым, поэтому картинку использовать не получится :(

Добавлено через 4 минуты и 57 секунд
Чуть не забыл, софтина, пишется под винду на Visual Studio 2012, использую WinApi
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
VSB
Дата 13.6.2013, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 1
Всего: 2



Ой, намучаешься ты с чистым WinApi. Лучше бы Qt либо C#+WPF
PM MAIL   Вверх
Dem_max
Дата 13.6.2013, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Окна рисуются кастомно через WM_NCPAINT
http://msdn.microsoft.com/en-us/library/wi...2(v=vs.85).aspx


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
st4lk3r0k
Дата 13.6.2013, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(VSB @  13.6.2013,  00:50 Найти цитируемый пост)
Ой, намучаешься ты с чистым WinApi. Лучше бы Qt либо C#+WPF 

Дык в том и смысл smile а как ещё учится?


Цитата(Dem_max @  13.6.2013,  06:07 Найти цитируемый пост)
Окна рисуются кастомно через WM_NCPAINT
http://msdn.microsoft.com/en-us/library/wi...2(v=vs.85).aspx 

О! Пасиб! Будем копать в ту сторону.

Кста, а по WM_NCPAINT, никто хороших уроков не знает? (можно на инглише smile)
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
Dem_max
Дата 13.6.2013, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Какие нафиг уроки, приходит сообщение начинаешь отрисовывать не клиентсую область собственно как WM_PAINT


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
st4lk3r0k
Дата 13.6.2013, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Dem_max @  13.6.2013,  08:53 Найти цитируемый пост)
Какие нафиг уроки, приходит сообщение начинаешь отрисовывать не клиентсую область собственно как WM_PAINT 


Уроки по отрисовки smile

к примеру, нашел такой код:
Код

case WM_NCPAINT:
   {
       HDC hdc;
       RECT rect;
       HBRUSH b;
       HPEN pe;

       hdc=GetDCEx(hwnd,(HRGN)wParam,DCX_WINDOW|DCX_CACHE|DCX_INTERSECTRGN|DCX_LOCKWINDOWUPDATE);
       GetWindowRect(hwnd,&rect);
       b=CreateSolidBrush(RGB(0,180,180));
       SelectObject(hdc,B)/>;
       pe=CreatePen(PS_SOLID, 1, RGB(90, 90, 90));
       SelectObject(hdc,pe);
       Rectangle(hdc,0,0,(rect.right-rect.left),(rect.bottom-rect.top));
       DeleteObject(pe);
       DeleteObject(B)/>;

       ReleaseDC(hwnd,hdc);
       RedrawWindow(hwnd,&rect,(HRGN)wParam,RDW_UPDATENOW);
       return 0;

   }


а где устанавливается, что рисуется именно рамка окна, непонятно :(

вот по этойбы теме чегонить почитать...
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
st4lk3r0k
Дата 13.6.2013, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно поставить вопрос несколько иначе smile
Может ктонибудь скинуть код, который создаст окошко в форме эллипса (с антиалиасингом) и чтобы окошко отбрасывало тень smile без использования картинок ;) 

я пытался найти примеры, но видимо хреново подбираю слова для поиска :(
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
Amp
Дата 13.6.2013, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(st4lk3r0k @  13.6.2013,  10:30 Найти цитируемый пост)
Может ктонибудь скинуть код, который создаст окошко в форме эллипса (с антиалиасингом) и чтобы окошко отбрасывало тень smile без использования картинок ;) 

А у кого из озвученных приложений окно нестандартной формы? У всех либо системные декорации с кастомизированным заголовком (Opera, Chrome), либо отсутствие декорация и отрисовка фейковых в прямоугольной клиентской области (Steam, iTunes). 

По поводу эллипсов и треугольничков с тенями можешь почитать"Layered Windows".
PM MAIL   Вверх
st4lk3r0k
Дата 13.6.2013, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Amp @  13.6.2013,  10:46 Найти цитируемый пост)
А у кого из озвученных приложений окно нестандартной формы? У всех либо системные декорации с кастомизированным заголовком (Opera, Chrome), либо отсутствие декорация и отрисовка фейковых в прямоугольной клиентской области (Steam, iTunes). 


Верно, но мне хочется немного сильнее закруглить края и заставить окошко отбрасывать тень, впринципе все smile


Цитата(Amp @  13.6.2013,  10:46 Найти цитируемый пост)
По поводу эллипсов и треугольничков с тенями можешь почитать"Layered Windows". 


Вот именно про "Layered Windows" я нифига полезного найти и несмог (с примерами).
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
st4lk3r0k
Дата 14.6.2013, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я так понмаю, из вас тоже никто ничего полезного по "Layered Windows" в сети не видел? Мнебы хоть простенький пример масштабируемого окошка, чтобы начать двигаться в нужном направлении...
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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