Что нового

[Элементы GUI] Отображение элементов gui без отображения фона окна

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Доброго времени суток, форумчане. Заинтересовала данная тема, но не могу найти путевых примеров. Посоветуйте.
Итак, суть: нужно отобразить только лэйбл, без фона гуи и рамки.
Находил примеры, но в них при создании лэйбла остается и фон самого лэйбла.
Пример требуемого - во вложении.
 

Fever

Скриптер
Сообщения
308
Репутация
112
kasper_sky [?]
но не могу найти путевых примеров
родная справочка :ok:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WINAPI.au3>

Local $gui = GUICreate("trans", 300, 400, -1, -1, -1, $WS_EX_LAYERED)
GUICtrlCreateLabel("This is text on a transparent Layered GUI", 10, 10, 200, 20, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetTip(-1, "Click label to drag layered window")
Local $layButt = GUICtrlCreateButton("Button", 10, 40, 40)
GUISetBkColor(0xABCDEF)
_WinAPI_SetLayeredWindowAttributes($gui, 0x010101)
GUISetState()

Local $guicontrol = GUICreate("ControlGUI", 300, 400, 100, 100)
Local $checkTrans = GUICtrlCreateCheckbox("Transparent color 0xABCDEF (Checked) Or 0x010101", 10, 10)
Local $checkBorder = GUICtrlCreateCheckbox("POPUP-Style", 10, 30)
GUICtrlCreateLabel("Transparency for Layered GUI", 10, 50)
Local $slidTrans = GUICtrlCreateSlider(10, 70, 200, 30)
GUICtrlSetLimit($slidTrans, 255, 0)
GUICtrlSetData(-1, 255)
GUISetState()

While 1
	Local $extMsg = GUIGetMsg(1)
	Local $msg = $extMsg[0]
	Switch $extMsg[1]
		Case $guicontrol
			Select
				Case $msg = $GUI_EVENT_CLOSE
					Exit
				Case $msg = $checkTrans Or $msg = $slidTrans

					; Change Attributes of Trans-Color and Window Transparency

					If BitAND(GUICtrlRead($checkTrans), $GUI_CHECKED) = $GUI_CHECKED Then
						_WinAPI_SetLayeredWindowAttributes($gui, 0xABCDEF, GUICtrlRead($slidTrans))
					Else
						_WinAPI_SetLayeredWindowAttributes($gui, 0x010101, GUICtrlRead($slidTrans))
					EndIf

				Case $msg = $checkBorder
					If BitAND(GUICtrlRead($checkBorder), $GUI_CHECKED) = $GUI_CHECKED Then
						GUISetStyle($WS_POPUP, -1, $gui)
					Else
						GUISetStyle($GUI_SS_DEFAULT_GUI, -1, $gui)
					EndIf
			EndSelect
		Case $gui
			Select
				Case $msg = $layButt
					Local $transcolor, $alpha
					Local $info = _WinAPI_GetLayeredWindowAttributes($gui, $transcolor, $alpha)
					MsgBox(0, 'Layered GUI', "Button on layered Window Clicked" & @CRLF & "Information about this window: " & @CRLF & _
							"Transparent Color: " & $transcolor & @CRLF & _
							"Alpha Value: " & $alpha & @CRLF & _
							"LWA_COLORKEY: " & (BitAND($info, $LWA_COLORKEY) = $LWA_COLORKEY) & @CRLF & _
							"LWA_ALPHA: " & (BitAND($info, $LWA_ALPHA) = $LWA_ALPHA))
				Case $msg = $GUI_EVENT_CLOSE
					Exit MsgBox(0, '', "Close from Layered GUI")
			EndSelect
	EndSwitch
WEnd
 

Fever

Скриптер
Сообщения
308
Репутация
112
kasper_sky [?]
не вопрос :ok:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WINAPI.au3>

Local $gui = GUICreate("trans", 300, 400, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
GUICtrlCreateLabel("This is text on a transparent Layered GUI", 10, 10, 200, 20, -1, $GUI_WS_EX_PARENTDRAG)
Local $layButt = GUICtrlCreateButton("Button", 10, 40, 40)
GUISetBkColor(0xABCDEF)
_WinAPI_SetLayeredWindowAttributes($gui, 0xABCDEF)
GUISetState()

While 1
    Local $extMsg = GUIGetMsg()
    Switch $extMsg
		Case $layButt
            MsgBox(0, 'Layered GUI', "тыц")
        Case $GUI_EVENT_CLOSE
            Exit MsgBox(0, '', "Close from Layered GUI")
    EndSwitch
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
658
kasper_sky
Это ?:
Код:
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("TEST", 1000, 570, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
GUISetBkColor(0x000001)
$PIC = GUICtrlCreatePic("11.jpg", 0, 0, 1000, 570, $GUI_DISABLE)
GUICtrlCreateLabel("Transparent backcolor of label", 200, 50, 500, 50)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 18, 800, 2, "Verdana")
$BUTTON = GUICtrlCreateButton('EXIT', 300, 300, 100, 25)
_WinAPI_SetLayeredWindowAttributes($GUI, 0x000001)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $BUTTON
            Exit
    EndSwitch
WEnd
 
Верх