Файл: ...\Samples\Solution\Toledo\Irregular.scx
Главное окно Visual FoxPro и создаваемые пользователем Формы обычно имеют прямоугольную форму. Для изменения указанной характеристики можно применить функцию Windows API SetLayeredWindowAttributes , которая может изменять коэффициент прозрачности и цветовой оттенок. Функция SetLayeredWindowAttributes поддерживается Операционными системами Microsoft Windows 2000 и Windows XP.
Объявление функций Windows API
В данном примере, в событии Init, объявляются необходимые функции API :
![]() | |
---|---|
DECLARE INTEGER SetLayeredWindowAttributes IN win32api; |
См. дополнительно: Событие Init . См. также MSDN online в http://msdn.microsoft.com.
Отображение Окна нестандартной формы
Указанная выше функция SetLayeredWindowAttributes может отобразить непрямоугольную форму, или изменить оттенок прозрачности для формы. В этом случае формы отображаются в полупрозрачном цвете. Однако могут управляться простым кликом манипулятора мыши.
Данная функциональность поддерживается только в ОС Microsoft Windows 2000 и Windows XP, однако для использования перечисленных дополнительных свойств необходимо выполнение некоторых условий.
Установить для формы следующие характеристики
Установит свойство формы Form ShowWindow = 2 (As Top-Level Form), чтобы обеспечит многоуровневость окна.
Необходимо определить свойства окна (формы), как показано далее:
Копировать код
BorderStyle = 0
Caption = ""
Closable = .F.
ControlBox = .F.
TitleBar = 0В соответствующем методе MakeIrregular разместите следующий программный код.
Копировать код
* Gets existing flags from the window.
lnFlags = GetWindowLong(nHWND, GWL_EXSTYLE)
ThisForm.nFlags = lnFlags
* Appends Layered flag to existing flags.
lnFlags = BITOR(lnFlags, WS_EX_LAYERED)
* Sets new flags to the window.
SetWindowLong(nHWND, GWL_EXSTYLE, lnFlags)
SetLayeredWindowAttributes(nHWND, nColor, 0, LWA_COLORKEY)
Для дополнительной информации, см. разделы: Дизайнер Форм, Создание Форм , и Свойство ShowWindow.