иконка в трее и окно рядом с ним
От: Аноним  
Дата: 24.01.11 14:19
Оценка:
Привет
подскажите как в Aero выводятся окна наподобие вот этого


То есть, где то рядом с иконкой в трее выезжает маленькое окно.
Существует ли какое-то АПИ, кроме ShellNotifyIcon?

Заранее прошу прощения за наверное избитый вопрос, последний раз я размещал иконки в трее во времена Win98 , когда были проблемы с определением положения этой иконки и все делалось вручную на WinAPI/через MFC, а потом пересел на мак/linux. Счас только вернулся на Windows, это как другой мир .
Может для этих всплывающих окошек есть специальное API?

Правильно я понял что программирование окошек теперь перенесли на .net? Или все еще используются CreateWindowEx/etc в этих системных утилитах, вроде регулятора громкости, выбора сети (как на рис)?
Спасибо
Re: иконка в трее и окно рядом с ним
От: Аноним  
Дата: 24.01.11 14:50
Оценка:
Здравствуйте, Аноним, Вы писали:

И вообще интересно, как делаются эффекты вроде всплывания окон из трея?
В Cocoa и CoreGraphics достаточно большое разнообразие вариантов анимаций. А как в Win? Неужели все двигают окна с помощью SetWindowPos с учетом разрешения монитора? Тот же Live Messenger например, который показывает входящее сообщение в виде всплывающего окна, если сам messenger неактивен. Как они это сделали?
Re[2]: иконка в трее и окно рядом с ним
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 24.01.11 15:15
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>В Cocoa и CoreGraphics достаточно большое разнообразие вариантов анимаций. А как в Win? Неужели все двигают окна с помощью SetWindowPos с учетом разрешения монитора? Тот же Live Messenger например, который показывает входящее сообщение в виде всплывающего окна, если сам messenger неактивен. Как они это сделали?


AnimateWindow() ?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: иконка в трее и окно рядом с ним
От: Аноним  
Дата: 24.01.11 15:32
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>AnimateWindow() ?

Спасибо, попробую

И такой вопрос появился:
Раньше в Windows было принято писать на WinAPI, для более сложных приложений была громоздкая C++ обертка MFC (и "тонкая" обертка WTL — так и не понял смысла ее существования, когда уже была MFC).
Сейчас много говорят о WPF(которую нужно(?) или рекомендуют применять начиная с Windows Vista) и Windows Forms (для XP). Обе — часть .NET framework, но предоставляют больше возможностей (например, WPF работает через DirectX, а не GDI-прослойку). Еще раз извините, если это полный бред.

Сейчас .Net это что-то вроде Cocoa в OS X? То есть, если писать приложение на C++ и компилировать как non-managed, большинство "крутых" возможностей мне просто будут недоступны?

Не могли бы вы прояснить ситуацию?
Спасибо
Re[4]: иконка в трее и окно рядом с ним
От: Ocelot  
Дата: 24.01.11 15:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Сейчас .Net это что-то вроде Cocoa в OS X? То есть, если писать приложение на C++ и компилировать как non-managed, большинство "крутых" возможностей мне просто будут недоступны?


Ну не совсем, пожалуй, точное соответствие. .NET как платформа все-таки помасштабнее Cocoa. Хотя бы потому, что включает в себя кроме интерфейса к OS еще и ASP.NET.

По второму пункту — тоже не так. Большинство "крутых" возможностей доступны также и в виде unmanaged API.
Re[5]: иконка в трее и окно рядом с ним
От: Аноним  
Дата: 24.01.11 16:18
Оценка:
Здравствуйте, Ocelot, Вы писали:

O>Ну не совсем, пожалуй, точное соответствие. .NET как платформа все-таки помасштабнее Cocoa. Хотя бы потому, что включает в себя кроме интерфейса к OS еще и ASP.NET.

O>По второму пункту — тоже не так. Большинство "крутых" возможностей доступны также и в виде unmanaged API.

А тот же медленный GDI vs WPF-on-DirectX? Вроде ж DX поболее возможностей предоставляет?

Вот например, Live Messenger, с его эффектами и красивостями (даже в "некрасивой" WinXP). Такое обычно просто пишется используя WPF?
С ужасом представляю, что мне, как бывшему С программисту, придется прорисовывать все элементы управления на "голом" API (если, конечно, само API не поменялось, — но поиск подсказывает, что все осталось по-прежнему — ну, добавили прозрачность к элементам управления, но все базовые элементы остались теми же — несколько классов окон и "фокусы" с CreateWindowEx для придания разных форм этому элементу управления).
Ничего особо красивого на WinAPI за разумное время не напишешь, нужно копать в сторону .NET?
Re[6]: иконка в трее и окно рядом с ним
От: Аноним  
Дата: 24.01.11 17:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот например, Live Messenger, с его эффектами и красивостями (даже в "некрасивой" WinXP). Такое обычно просто пишется используя WPF?

А>С ужасом представляю, что мне, как бывшему С программисту, придется прорисовывать все элементы управления на "голом" API (если, конечно, само API не поменялось, — но поиск подсказывает, что все осталось по-прежнему — ну, добавили прозрачность к элементам управления, но все базовые элементы остались теми же — несколько классов окон и "фокусы" с CreateWindowEx для придания разных форм этому элементу управления).
А>Ничего особо красивого на WinAPI за разумное время не напишешь, нужно копать в сторону .NET?

Собственно, вопрос — "как надо" в Win, учитывая что уже 2011 год и что хотелось бы покрасивее и, возможно, с интерфейсом a-la Messenger
Re[6]: иконка в трее и окно рядом с ним
От: hattab  
Дата: 24.01.11 17:36
Оценка:
Здравствуйте, Аноним, Вы писали:

> А тот же медленный GDI vs WPF-on-DirectX? Вроде ж DX поболее возможностей предоставляет?


Акселерацию? Так ее и GDI обеспечивает. Для свежих Direct2D и DirectWrite есть объектно-ориентированное нативное API.

> Вот например, Live Messenger, с его эффектами и красивостями (даже в "некрасивой" WinXP). Такое обычно просто пишется используя WPF?


Мессенджер не использует .NET, а следовательно и WPF.

> С ужасом представляю, что мне, как бывшему С программисту, придется прорисовывать все элементы управления на "голом" API (если, конечно, само API не поменялось, — но поиск подсказывает, что все осталось по-прежнему — ну, добавили прозрачность к элементам управления, но все базовые элементы остались теми же — несколько классов окон и "фокусы" с CreateWindowEx для придания разных форм этому элементу управления).

> Ничего особо красивого на WinAPI за разумное время не напишешь, нужно копать в сторону .NET?

Наверняка есть библиотеки для скинирования common-controls-гуя (или вообще HTML based, HTMLayout например. Вроде и у Qt возможности кастомизации есть. Можно и FlashPlayer захостить). Как вариант, берешь Delphi/C++Builder (как бывший сишник) + бесплатную для exUSSR AlphaControls и в пять секунд получаешь красоту
avalon 1.0rc3 rev 380, zlib 1.2.3
Re[7]: иконка в трее и окно рядом с ним
От: dcb-BanDos Россия  
Дата: 25.01.11 14:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Вот например, Live Messenger, с его эффектами и красивостями (даже в "некрасивой" WinXP). Такое обычно просто пишется используя WPF?

А>>С ужасом представляю, что мне, как бывшему С программисту, придется прорисовывать все элементы управления на "голом" API (если, конечно, само API не поменялось, — но поиск подсказывает, что все осталось по-прежнему — ну, добавили прозрачность к элементам управления, но все базовые элементы остались теми же — несколько классов окон и "фокусы" с CreateWindowEx для придания разных форм этому элементу управления).
А>>Ничего особо красивого на WinAPI за разумное время не напишешь, нужно копать в сторону .NET?

А>Собственно, вопрос — "как надо" в Win, учитывая что уже 2011 год и что хотелось бы покрасивее и, возможно, с интерфейсом a-la Messenger


Если нужна красота — то находишь библиотеку контролов в духе этого и пишешь на WinForms/WPF
Ничто не ограничивает полет мысли программиста так, как компилятор.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.