Привет
подскажите как в Aero выводятся окна наподобие вот этого
То есть, где то рядом с иконкой в трее выезжает маленькое окно.
Существует ли какое-то АПИ, кроме ShellNotifyIcon?
Заранее прошу прощения за наверное избитый вопрос, последний раз я размещал иконки в трее во времена Win98 , когда были проблемы с определением положения этой иконки и все делалось вручную на WinAPI/через MFC, а потом пересел на мак/linux. Счас только вернулся на Windows, это как другой мир .
Может для этих всплывающих окошек есть специальное API?
Правильно я понял что программирование окошек теперь перенесли на .net? Или все еще используются CreateWindowEx/etc в этих системных утилитах, вроде регулятора громкости, выбора сети (как на рис)?
Спасибо
Re: иконка в трее и окно рядом с ним
От:
Аноним
Дата:
24.01.11 14:50
Оценка:
Здравствуйте, Аноним, Вы писали:
И вообще интересно, как делаются эффекты вроде всплывания окон из трея?
В Cocoa и CoreGraphics достаточно большое разнообразие вариантов анимаций. А как в Win? Неужели все двигают окна с помощью SetWindowPos с учетом разрешения монитора? Тот же Live Messenger например, который показывает входящее сообщение в виде всплывающего окна, если сам messenger неактивен. Как они это сделали?
Здравствуйте, <Аноним>, Вы писали:
А>В Cocoa и CoreGraphics достаточно большое разнообразие вариантов анимаций. А как в Win? Неужели все двигают окна с помощью SetWindowPos с учетом разрешения монитора? Тот же Live Messenger например, который показывает входящее сообщение в виде всплывающего окна, если сам messenger неактивен. Как они это сделали?
AnimateWindow() ?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
Здравствуйте, 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, большинство "крутых" возможностей мне просто будут недоступны?
Здравствуйте, Аноним, Вы писали:
А>Сейчас .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
Здравствуйте, Аноним, Вы писали:
> А тот же медленный 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 и в пять секунд получаешь красоту
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Вот например, Live Messenger, с его эффектами и красивостями (даже в "некрасивой" WinXP). Такое обычно просто пишется используя WPF? А>>С ужасом представляю, что мне, как бывшему С программисту, придется прорисовывать все элементы управления на "голом" API (если, конечно, само API не поменялось, — но поиск подсказывает, что все осталось по-прежнему — ну, добавили прозрачность к элементам управления, но все базовые элементы остались теми же — несколько классов окон и "фокусы" с CreateWindowEx для придания разных форм этому элементу управления). А>>Ничего особо красивого на WinAPI за разумное время не напишешь, нужно копать в сторону .NET?
А>Собственно, вопрос — "как надо" в Win, учитывая что уже 2011 год и что хотелось бы покрасивее и, возможно, с интерфейсом a-la Messenger
Если нужна красота — то находишь библиотеку контролов в духе этого и пишешь на WinForms/WPF
Ничто не ограничивает полет мысли программиста так, как компилятор.