Что нового

[Элементы GUI] Картинка в место формы(окна)

Foli

Знающий
Сообщения
39
Репутация
5
Как реализовать картинку без окна, раньше использавал это
Код:
$Form1_1 = GUICreate("Bot v1.0", 449, 150, 192, 124)
GUICtrlCreatePic(@TempDir & '6.bmp', 0, 0, 449, 150) 
GUICtrlSetState(-1, $GUI_DISABLE)

щас мне нужно просто png картинка как фон и кнопки на ней, за рание спс
OffTopic:

П.С. юзал поиск не нашел :(
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
по моему(или я нечего не понял) это не то что мне нужно, там говорится о пнг картинке на картинке, мне нужно пнг как фон и основное окно
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
png картинку одень на окно получится с помощью _WinAPI_UpdateLayeredWindowEx(), но на нём Вы больше ни чего не создадите, потребуется создавать дочернее окно и на нём создавать элементы, почему вы не хотите использовать *.bmp?

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

$hForm = GUICreate('', 442, 332, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
$iPic = GUICtrlCreatePic(@ScriptDir & '\1.bmp', 0, 0, 442, 332)
_WinAPI_SetLayeredWindowAttributes($hForm, 0xFF00DC, 255)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd







Добавлено:
Сообщение автоматически объединено:

Вот с png картинкой

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

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\1.png')
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_Shutdown()

$hForm = GUICreate('', 442, 332, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
_WinAPI_UpdateLayeredWindowEx($hForm, -1, -1, $hBitmap, 255)
GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST')
GUISetState()

$iPos = WinGetPos($hForm)
$hChild = GUICreate('', 442, 332, $iPos[0], $iPos[1], $WS_POPUP, $WS_EX_LAYERED, $hForm)
GUISetBkColor(0xFF00DC)
$iButton = GUICtrlCreateButton('Exit', 20, 20, 50, 20)
_WinAPI_SetLayeredWindowAttributes($hChild, 0xFF00DC, 255)
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3, $iButton
			Exit
	EndSwitch
WEnd

Func WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
	Switch $hWnd
		Case $hForm
			$iPos = _WinAPI_GetPosFromRect(_WinAPI_GetWindowRect($hWnd))
			WinMove($hChild, '', $iPos[0], $iPos[1])
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc

Func WM_NCHITTEST($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch _WinAPI_DefWindowProc($hWnd, $iMsg, $wParam, $lParam)
                Case $HTCLIENT
					Return $HTCAPTION
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
чот не один из примеров не пашет в bmp белый вон, а с png одна кнопка
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
может я её неправильно поставил, там в архиве помимо WinAPIEx.au3 есть куча файлов, я WinAPIEx.au3 кинул в инклуд а ост в корень AutoIt3
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Все .au3 нужно закинуть в папку #include.
 
Верх