Помимо практического использования, как (если это вообще возможно) можно создать "снегопад" влияет на ваш настольный ПК под управлением Windows? Желательно только с необработанным C / C ++ и WinAPI.
Требования к снегу следующие:
- Появляется поверх всего остального изображения (Примечание: окна, которые всегда отображаются поверх всех окон, могут все еще выходить на снег, это нормально. Я понимают, что для любого приложения не может быть флага «абсолютное наверху»)
- Снежинки - это маленькие, возможно, простые точки или кластеры из нескольких белых пикселей;
- Не мешает работе с компьютером (при нажатии на снежинку отправляется щелкните мышью, чтобы перейти к нижележащему окну);
- Хорошо работает с пользователями, перетаскивающими окна;
- Возможность работы с несколькими мониторами.
Бонусные баллы за любую из следующих функций:
- Снег накапливается на нижнем краю окна или панель задач (если она находится внизу экрана);
- Снег накапливается также в окнах верхнего уровня. Или, возможно, часть снега накапливается, часть продолжает опускаться, накапливаясь в каждом окне со строкой заголовка;
- Снег, накопившийся на окнах, «стряхивается», когда окна перетаскиваются;
- Снег, накопленный на панели задач, является известно о расширенной кнопке «Пуск» в Vista / 7.
- Снежинки имеют тени / очертания, поэтому они видны на белом фоне;
- Снежинки имеют сложные формы, похожие на снежинок (они все еще должны быть крошечными).
- Щелчок по снежинке отправляет щелчок в нижележащее окно, но снежинка испаряется с небольшой крутой анимацией;
Большинство этих эффектов достаточно просты, за исключением той части, где снег проходит по щелчку и хорошо сочетается с перетаскиванием окон. В молодые годы я Мы сделали реализацию, основанную на HDC, полученном из GetDesktopWindow ()
, который был сквозным, но имел проблемы с перетаскиванием окон пользователями (визуализированные на них снежинки «тянулись»).
Решение может использовать возможности Vista / 7 Aero, но, конечно, предпочтительнее универсальное решение. Есть идеи?
задан random 9 April 2011 в 14:33
поделиться