Erzeugt ein Bild-Control für die GUI.
GUICtrlCreatePic ( filename, left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )
filename | Dateiname des zu ladenden Bildes. Es werden die Typen BMP, JPG, nicht animierte GIF unterstützt. |
left | Die linke Seite des Bildes. Wird -1 verwendet, dann wird left mit Hilfe von GUICoordMode berechnet. |
top | Die Oberkante des Bildes. Wird -1 verwendet, dann wird top mit Hilfe von GUICoordMode berechnet. |
width | [optional] Die Breite des Bildes (voreingestellt ist die zuvor verwendete Breite). |
height | [optional] Die Höhe des Bildes (voreingestellt ist die zuvor verwendete Höhe). |
style | [optional] Legt den Stil des Bild-Controls fest. Siehe Anhang GUI-Stile für Controls. Standard ( -1) : $SS_NOTIFY Erzwungene Stile : $SS_BITMAP | $SS_CENTERIMAGE |
exStyle | [optional] Legt den erweiterten Stil des Bild-Controls fest. Siehe Tabelle der erweiterten Stile. |
Erfolg: | Die Identifikationsnummer (Control-ID) des neuen Controls. |
Fehler: | 0 falls das Bild nicht erzeugt werden kann. |
Um Informationen im Control zu setzen oder zu verändern, siehe GUICtrlUpdate...() Funktionen.
Nachdem die Dialogbox angezeigt wurde, kann das Bild mit GUICtrlSetImage() aktualisiert werden.
Soll das Bild-Control die Größe der Originaldatei haben, setzt man width=height=0.
Um ein transparentes Bild zu erhalten, erzeugt man das GUI-Fenster mit dem erweiterten Stil WS_EX_LAYERED. Das oberste linke Pixel wird hierbei als "transparente Farbe" benutzt. Werden mehrere Bilder erzeugt, bestimmt das letzte Bild die "transparente Farbe". Siehe Beispiel 2.
Um weitere Stile zusätzlich zum Standardstil zu verwenden, benutzt man BitOR($GUI_SS_DEFAULT_PIC, newstyle, ... ).
Um die oben angegebenen Werte verwenden zu können, muss #include <StaticConstants.au3> in das Skript eingefügt werden.
Als Standard für das Verhalten des Controls (bzgl. Größe und/oder Position) bei Größenänderung der GUI gilt $GUI_DOCKSIZE. (Größe wird nicht geändert.)
Mögliche Resizing-Parameter siehe GUICtrlSetResizing.
Wird ein Bild als Hintergrundbild genutzt, überlagern die anderen Controls dieses. Somit ist es wichtig, das Bild-Control zu deaktivieren: GUICtrlSetState(-1, $GUI_DISABLE).
Der erweiterte Stil $GUI_WS_EX_PARENTDRAG erlaubt das Ziehen von Fenstern, die keine Titelleiste besitzen (kein $WS_CAPTION Stil in GUICreate()).
Der Hintergrund ist immer auf transparent gesetzt. GUICtrlSetBkColor() hat auf Bild-Controls keinen Effekt.
- - - - - - - - Erklärung der Controls - - - - - - - -
GUICoordMode (Option), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsg
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Meine GUI mit Bild", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU) ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird.
GUISetBkColor(0xE0FFFF)
Local $idPic = GUICtrlCreatePic("..\GUI\mslogo.jpg", 50, 50, 200, 50)
GUISetState(@SW_SHOW)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
; Verändere die Größe des Controls
GUICtrlSetPos($idPic, 50, 50, 200, 100)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
While 1
$idMsg = GUIGetMsg()
If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
EndFunc ;==>Example
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $g_hGui, $g_aGuiPos, $g_hPic, $g_aPicPos
Example()
Func Example()
Local $g_hGui = GUICreate("test transparentpic", 200, 100)
Local $g_hPic = GUICreate("", 68, 71, 10, 20, $WS_POPUp, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $g_hGui)
GUICtrlCreatePic("..\GUI\merlin.gif", 0, 0, 0, 0)
GUISetState(@SW_SHOW, $g_hPic)
GUISetState(@SW_SHOW, $g_hGui)
HotKeySet("{ESC}", "Main")
HotKeySet("{Left}", "Left")
HotKeySet("{Right}", "Right")
HotKeySet("{Down}", "Down")
HotKeySet("{Up}", "Up")
$g_aPicPos = WinGetPos($g_hPic)
$g_aGuiPos = WinGetPos($g_hGui)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
While 1
Switch GUIGetMsg()
Case $Gui_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
HotKeySet("{ESC}")
HotKeySet("{Left}")
HotKeySet("{Right}")
HotKeySet("{Down}")
HotKeySet("{Up}")
EndFunc ;==>Example
Func Main()
$g_aGuiPos = WinGetPos($g_hGui)
WinMove($g_hGui, "", $g_aGuiPos[0] + 10, $g_aGuiPos[1] + 10)
EndFunc ;==>Main
Func Left()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0] - 10, $g_aPicPos[1])
EndFunc ;==>Left
Func Right()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0] + 10, $g_aPicPos[1])
EndFunc ;==>Right
Func Down()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0], $g_aPicPos[1] + 10)
EndFunc ;==>Down
Func Up()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0], $g_aPicPos[1] - 10)
EndFunc ;==>Up