|
|
|||||||||||||||||||||||||||||
|
Непрямоугольные полупрозрачные формыФилипп Рендор
Сегодня часто встречаются на практике нестандартные пользовательские интерфейсы Их можно увидеть в действии в таких приложениях как WinAmp или Windows Media Player. Однако теперь это легко может сделать любой программист, придав особую изюминку своему приложению. Техника, описываемая в данной статье, доступна только для ПО, работающего под управлением ОС Windows 2000/XP, так как в основе ее лежит использование интерфейса API, введенного в ОС Windows 2000. Поэтому, приложение должно при запуске проверять версию действующей ОС и корректно завершать работу, если версия ОС не соответствует заданному образцу. Создание непрямоугольных форм, т.е. форм неровных очертаний с элементами разной степени полупрозрачности, осуществляется с помощью новой функциональной возможности под названием многослойные окна (layered windows). Проверка на соответствие ОС Windows 2000/XPК событию OnCreate основной формы приложения нужно добавить следующие строчки: В этом программном коде Win32 API не используется. Вместо этого применяются глобальные переменные, которые во время исполнения программы определяются библиотекой VCL. Они определены в модуле SysUtils и их значения вычисляются во время запуска приложения. Для получения более подробной информации о версии данной ОС из семейства Windows можно использовать следующий набор переменных:
Создание многослойного окнаДля того чтобы создать многослойное окно, необходимо добавить в заданную форму расширенный стиль окна: WS_EX_LAYERED. Это можно сделать, подменив в форме метод CreateParams: В зависимости от трансляции Win32 API, установленной на компьютере, константа WS_EX_LAYERED может быть уже определена. Добавление прозрачности и полупрозрачностиWin32 API реализует прозрачность и полупрозрачность с помощью функции SetLayeredWindowAttributes: Параметры данной функции определены в следующей таблице.
Таким образом, для создания полупрозрачной (на 50%) формы с прозрачными пикселями цвета clBlue необходимо к событию OnCreate добавить следующий код: Добавление прозрачности к заданной форме также означает, что все области с указанным цветом не будут реагировать на щелчки мышью. Эти щелчки будут применяться к остальным объектам, находящимся в данном месте экрана. Перемещение формы без заголовка окнаПри создании приложения с нестандартным пользовательским интерфейсом можно избавиться от классического очертания окна, а также от его заголовка. Для этого необходимо задать стиль BorderStyle данной формы как bsNone. Однако может потребоваться сохранить подвижность формы подобно стандартным приложениям. Этого можно добиться небольшой модификацией порядка работы сообщения WM_NCHITTEST, посылаемого операционной системой. После такой модификации любые щелчки пользователя в клиентской области формы будут восприняты ОС Windows как щелчки мышью на заголовке окна, что и позволит перемещать форму. ЗаключениеВ данной статье была представлена информация об интерфейсе API, доступном в ОС Windows 2000/XP. С его помощью любому приложению можно придать оригинальный, более привлекательный для современных пользователей вид. Ссылки по теме
|
|