Funktionreferenz


GUICtrlCreatePic

Beschreibung anzeigen in

Erzeugt ein Bild-Control für die GUI.

GUICtrlCreatePic ( filename, left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Parameter

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.

Rückgabewert

Erfolg: Die Identifikationsnummer (Control-ID) des neuen Controls.
Fehler: 0 falls das Bild nicht erzeugt werden kann.

Bemerkungen

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 - - - - - - - -

Verwandte Funktionen

GUICoordMode (Option), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsg

Beispiel

Beispiel 1

#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

Beispiel 2

#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