Guten Morgen zusammen,
ich habe mal wieder ein Problem. Ich bin dabei ein kleines Tool zu basteln was immer im Vordergrund ist und dem Benutzer gewissen Auswahlmöglichkeiten gibt. Die GUI soll ungefähr so aussehen: http://lh3.ggpht.com/_KXJSyGyXthI/STWte5TqAdI/AAAAAAAAAMY/ffD3JFobCOI/[UNSET].jpg
Der Hintergund soll dynamisch sein, da unterschiedliche Bildschirmauflösungen verwendet werden. Die Child-Gui soll allerdings immer 800x600 sein.
Das ist der Quelltext den ich bislang zusammen gebaut habe:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <GuiButton.au3>
#include <GUICtrlSetOnHover_UDF.au3>
#include <GDIPlus.au3>
#include <GuiComboBox.au3>
#include <File.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <ButtonConstants.au3>
Global Const $AC_SRC_ALPHA = 1
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$pngSrc = ".\IMG\bootmanager.jpg"
[/autoit] [autoit][/autoit] [autoit]$hImage = _GDIPlus_ImageLoadFromFile($pngSrc)
$width = _GDIPlus_ImageGetWidth($hImage)
$height = _GDIPlus_ImageGetHeight($hImage)
$guiMain = GUICreate( "Bootmanager", @DesktopWidth, @DesktopHeight,0, 0, $WS_POPUP, $WS_EX_LAYERED ) ; , $WS_POPUP, $WS_EX_TOPMOST , $WS_EX_LAYERED
GUICtrlCreatePic ( ".\IMG\bk.jpg" , 0,0, @DesktopWidth, @DesktopHeight)
$guichild = GUICreate("", $width, $height, -1, -1, $WS_POPUP,BitOR($WS_EX_LAYERED, $DS_MODALFRAME))
[/autoit] [autoit][/autoit] [autoit]WinSetOnTop($guichild, "", 1) ; "immer im Vordergrund"-Attribut
[/autoit] [autoit][/autoit] [autoit]SetBitmap($guichild, $hImage, 225 )
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW, $guiMain)
GUISetState(@SW_SHOW, $guichild)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
Func SetBitmap($hGUI, $hImage, $iOpacity)
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
_WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmap
Soweit schaut das ganze schon recht gut aus. Nun will ich aber auf die Child-Gui (eher gesagt auf das Bild der Child-Gui) Buttons setzen. Genau hieran verzweifele ich schon seit gestern Morgen. Die Buttons sind überhaupt nicht zu sehen, ich drehe mich irgendwie immer im Kreis
Ich hoffe ihr könnt mir helfen, bzw. wenn ihr eine bessere Variant habt bin ich auch ganz begeistert
Besten Dank schon einmal vorab