четверг, 29 апреля 2010 г.

Создание "слоеных" окон

Определенная часть GUI-разработчиков избалована готовыми фреймворками типа альфа-скинов и занимается "украшательствами" без разбору и оглядки на размеры своих приложений. Безусловно пользователь по-прежнему встречает по одежке. Но в итоге, примитивное приложение весит как Маткад. А ведь достаточно заглянуть в основы API чуть глубже и обойтись несколькими нативными функциями. К примеру, столь любимые окна с полупрозрачностью или слоеные окна. Начнем с того, что есть "слоеное" (layered) окно. Это окно, к которому особым образом применены свойства прозрачности. Как говорится в великом MSDN: "They include an alpha-blended cursor with a shadow, new transition effects including menu and ToolTip fade-in, menu selection fade-out, and an alpha-blended image drag in the shell. All of these effects were implemented by using the new functionality that Windows 2000 introduces, called layered windows". Что же это может дать нам? Прежде всего появляется возможность создавать: окна с любым коэффициентом прозрачности (плавное появление, угасание, анимация), окна с абсолютной прозрачностью для определенного цвета (формы нестандартной формы, "дырки"), окна с комбинированной прозрачностью.