Button mit austauschbarem Icon

  • Hallo,

    ich versuche einen Button hinzubekommen, der wie im folgenden Beispiel auf Klick sein Bild ändert. Das geht nun mit diesen Bildern, die über den Pfad direkt erreichbar sind. Wie funktioniert das aber, wenn ich ein Programm-Icon (hier z.B. von Thunderbird) anstelle des "Torus.png" einblenden will?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include "GUICtrlPic.au3"
    #include <ButtonConstants.au3>

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

    $bFirst = True
    $Pic1 = @ProgramFilesDir & "\AutoIt3\Examples\GUI\Torus.png"
    $Form1 = GUICreate("Form1", 400, 300)
    GUICtrlCreateButton("Mail",30, 30, 72, 72,$BS_ICON)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $a8 = _GUICtrlPic_Create($Pic1 , 30, 30, 72, 72, BitOR($SS_CENTERIMAGE,$SS_SUNKEN, $SS_NOTIFY), Default)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    if $nMsg <> 0 Then ConsoleWrite($nMsg & @crlf)
    switch $nMsg
    case $GUI_EVENT_CLOSE
    Exit
    Case $a8
    if $bFirst Then
    _GUICtrlPic_SetImage($a8, @ProgramFilesDir & "\AutoIt3\Examples\GUI\Merlin.gif", 1)
    Else
    _GUICtrlPic_SetImage($a8, @ProgramFilesDir & "\AutoIt3\Examples\GUI\Torus.png", 1)
    EndIf
    $bFirst = not $bFirst
    EndSwitch
    WEnd

    [/autoit]

    Dank und Gruß
    Thomas

  • Dei SuFu hat mir dashier ausgespuckt: [ gelöst ] icon aus exe

    Und da findet man ein Script in dem nur an Hand der .exe das Icon gemalt wird. Du musst nur den Path deiner .exe eintragen, also Path\Thunderbirth.exe

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Opt('MustDeclareVars', 1)

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

    Example1()
    ;example1 ---------------------------
    Func Example1()
    Local $icon, $n1, $n2, $msg

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

    GUICreate(" My GUI Icons", 250, 250)

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

    $icon = GUICtrlCreateIcon("mspaint.exe", -1, 10, 20, 20,20)
    GUISetState()

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
    EndFunc ;==>Example1

    [/autoit]

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake