GUICtrlCreateInput: Pic als Background?

  • Danke für Deine Hilfe, Raupi :)
    Aber nun fällt mir auf, dass ich es doch so brauche, dass zwei unterschiedliche Images gesetzt werden...

    Wenn es dazu noch ein Beispiel gibt, wäre ich sehr dankbar und alle Fragen sind beantwortet :)


    Grüße, Andy :rolleyes:

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Const $IMAGE_BITMAP = 0x0000
    Const $STM_SETIMAGE = 0x0172
    Const $STM_GETIMAGE = 0x0173

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("Dummy")
    $Pic = "C:\Programme\AutoIt3\Examples\Gui\msoobe.jpg"
    $Pic2 = "C:\Programme\AutoIt3\Examples\Gui\msoobe.jpg"

    [/autoit] [autoit][/autoit] [autoit]

    $idPIC = GUICtrlCreatePic($Pic, 0, 0, 198, 18)
    $idPIC2 = GUICtrlCreatePic($Pic2, 0, 30, 198, 18)
    $hBitmap = GUICtrlSendMsg($idPIC, $STM_GETIMAGE, $IMAGE_BITMAP, 0)
    $hBitmap2 = GUICtrlSendMsg($idPIC2, $STM_GETIMAGE, $IMAGE_BITMAP, 0)
    $aR = DllCall("Gdi32.dll", "Handle", "CreatePatternBrush", "Handle", $hBitmap)
    $hBrush = $aR[0]
    $aR = DllCall("Gdi32.dll", "Handle", "CreatePatternBrush", "Handle", $hBitmap2)
    $hBrush2 = $aR[0]

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $hGUI = GUICreate("Test", 400, 100)
    $idINP = GUICtrlCreateInput("Test", 20, 20, 200, 20)
    $hINP = GUICtrlGetHandle(-1)
    $InputColor = 0xFFFFFF
    GUICtrlCreateInput("", 20, 60, 200, 20)
    $hINP1 = GUICtrlGetHandle(-1)
    GUIRegisterMsg($WM_CTLCOLOREDIT, "ColorInput")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While True
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    DllCall("Gdi32.dll", "BOOL", "DeleteObject", "Handle", $hBrush)
    DllCall("Gdi32.dll", "BOOL", "DeleteObject", "Handle", $hBrush2)
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func ColorInput($hWnd, $iMsg, $wParam, $lParam)
    If $lParam = $hINP Or $lParam = $hINP1 Then
    DllCall("Gdi32.dll", "UINT", "SetTextColor", "Handle", $wParam, "UInt", $InputColor)
    DllCall("Gdi32.dll", "Int", "SetBkMode", "Handle", $wParam, "Int", 1)
    Switch $lParam
    Case $hINP
    Return $hBrush
    Case $hINP1
    Return $hBrush2
    EndSwitch
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>ColorInput

    [/autoit]

    Mußt nur noch den Pfad für $Pic2 anpaßen.