Что нового

Полупрозрачный фон для окна

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Метод создания полупрозрачного фона для окна, с сохранением "непрозрачности" для его элементов. Для запуска необходима WinAPIEx.au3 библиотека.


Код:
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

$hForm = GUICreate('', 800, 600, -1, -1, $WS_POPUP)
GUICtrlCreatePic(@WindowsDir & '\Web\Wallpaper\Ascent.jpg', 0, 0, 800, 600, -1, $GUI_WS_EX_PARENTDRAG)

$hMain = GUICreate('', 800, 600, -1, -1, $WS_POPUP, $WS_EX_LAYERED, $hForm)
GUISetBkColor(0xABABAB)
GUICtrlCreateButton('OK', 365, 560, 70, 23)
GUICtrlCreateEdit('', 40, 40, 720, 503)

_WinAPI_SetLayeredWindowAttributes($hMain, 0xABABAB, 0, $LWA_COLORKEY)

GUIRegisterMsg($WM_MOVE, 'WM_MOVE')

WinSetTrans($hForm, '', 127)

GUISetState(@SW_SHOW, $hForm)
GUISetState(@SW_SHOW, $hMain)

While 1
	$Msg = GUIGetMsg()
	Switch $Msg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
	WinMove($hMain, '', BitAND($lParam, 0xFFFF), BitShift($lParam, 16))
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_MOVE
 

IgRo

Знающий
Сообщения
65
Репутация
5
При добавлении меню. (GUICtrlCreateMenu) на таком окне фон встает ниже меню. Как это решить? Чтобы меню было на фоне (картинке)
 
Верх