Icon (linksbündig) und Text im Button anzeigen

  • Hallo zusammen

    gibt es eine Möglichkeit wenn man einen Button erstellt, dass ein Icon (linksbündig) und der Text im Button angezeigt wird?

    Ich habe es bereits versucht, aber bei mir wird nur das Icon angezeigt.


    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $msg

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

    GUICreate("Meine GUI",400,200,300,100)
    GUICtrlCreateButton("Text vom Button", 10, 20, 200, 40, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 22)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von johny1099 (21. Dezember 2010 um 20:26)

  • Hallo johny1099,

    natürlich geht das, wie du an diesem Skript erkennen kannst:

    Spoiler anzeigen
    [autoit]

    ;#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <GuiImageList.au3>

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

    Opt("MustDeclareVars", 1)

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

    _Main()

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

    Func _Main()
    Local $sBMPNormal = @ScriptDIR & "\dsFirst_NORMAL.BMP"
    Local $sBMPNormal = @ScriptDIR & "\dsFirst_NORMAL.BMP"
    Local $sBMPHot = @ScriptDir & "\dsFirst_mouseover.bmp"
    Local $sBMPPress = @ScriptDir & "\dsFirst_mousedown.bmp"
    Local $sBMPImage = @WindowsDir & "\pchealth\helpctr\System\blurbs\watermark_300x.bmp"
    Local $btn1, $btn2, $btn3, $btn4, $msg
    Local $hImagebtn1, $hImagebtn2, $hImagebtn3 ,$hImagebtn4

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

    ;Caveat: Minimum Operating Systems: Windows XP.

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

    ;Image list with multiple images will only show the images
    ;other than the 1st image when Themes are used.

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

    Local $hGUI = GUICreate("Button Imagelists - Minimum OS: Windows XP",400,300)

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

    GUICtrlCreatePic(@WindowsDir & "\Web\Wallpaper\Windows XP.jpg", 0, 0, 400, 300)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    ;multi state image Bitmap
    $btn1 = GUICtrlCreateButton("This Way", 30, 30, 90, 32)
    GUICtrlSetTip(-1, "Multi state bitmap imagelist")
    $hImagebtn1 = _GUIImageList_Create(24, 24, 3, 3)
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);1 - Normal
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPHot) ;2 - Hot
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPPress) ;3 - Pressed
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPPress);4 - Disabled
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);5 - Defaulted
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);6 - Stylus Hot (tablet computers only)
    _GUICtrlButton_SetImageList($btn1, $hImagebtn1)
    ;#cs
    ;single state image Bitmap
    $btn2 = GUICtrlCreateButton("This Way", 30, 70, 90, 32)
    GUICtrlSetTip(-1, "Single bitmap imagelist")
    $hImagebtn2 = _GUIImageList_Create(24, 24, 5, 3)
    _GUIImageList_AddBitmap($hImagebtn2, $sBMPNormal);1 - Normal
    _GUICtrlButton_SetImageList($btn2, $hImagebtn2)
    ;#ce
    ;single state image Icon
    $btn3 = GUICtrlCreateButton("Unlock", 30, 110, 90, 40)
    GUICtrlSetTip(-1, "Single icon imagelist")
    $hImagebtn3 = _GUIImageList_Create(32, 32, 5, 3)
    _GUIImageList_AddIcon($hImagebtn3, "msrating.dll", 10, True)
    _GUICtrlButton_SetImageList($btn3, $hImagebtn3)

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

    ;single state image Bitmap with overlayed text
    $btn4 = GUICtrlCreateButton("Help", 30, 160, 90, 90)
    GUICtrlSetTip(-1, "Single bitmap imagelist with overlayed text")
    GUICtrlSetFont(-1, 14, 800, -1, "Comic Sans MS")
    $hImagebtn4 = _GUIImageList_Create(80, 80, 5, 3)
    _GUIImageList_AddBitmap($hImagebtn4, $sBMPImage)
    _GUICtrlButton_SetImageList($btn4, $hImagebtn4, 4)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    Case $btn2
    GUICtrlSetState($btn1, $GUI_DISABLE)
    Case $btn3
    GUICtrlSetState($btn1, $GUI_ENABLE)
    Case $btn4
    EndSwitch
    WEnd
    EndFunc ;==>_Main

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

    dazu benötigst du noch Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Viel Spass damit,

    mfg autoBert

  • Hallo,

    das geht eventuell auch mit etwas weniger Aufwand, allerdings darf man dann nicht den Style $BS_ICON setzen -> MSDN

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $msg
    GUICreate("Meine GUI",400,200,300,100)
    GUICtrlCreateButton("Text vom Button", 10, 20, 130, 44)
    GUICtrlSetImage(-1, "shell32.dll", 22)
    GUISetState()
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    EndFunc

    [/autoit]
  • Das HIlfebeispiel zu _GUICtrlButton_SetImageList ist in diesem Sinne auch nicht zu verachten ;)

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <GuiImageList.au3>

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

    Opt("MustDeclareVars", 1)

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

    _Main()

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

    Func _Main()
    Local $hImage, $y = 70, $iIcon = 125, $btn[6], $rdo[6], $chk[6], $hImageSmall

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

    GUICreate("Buttons", 510, 400)
    GUISetState()

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

    $hImage = _GUIImageList_Create(32, 32, 5, 3, 6)
    For $x = 6 To 11
    _GUIImageList_AddIcon($hImage, "shell32.dll", $x, True)
    Next

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

    $hImageSmall = _GUIImageList_Create(16, 16, 5, 3, 6)
    For $x = 6 To 11
    _GUIImageList_AddIcon($hImageSmall, "shell32.dll", $x)
    Next

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

    $btn[0] = GUICtrlCreateButton("Button 1", 10, 10, 90, 50)
    _GUICtrlButton_SetImageList($btn[0], $hImage)

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

    $rdo[0] = GUICtrlCreateRadio("Radiobutton 1", 120, 10, 120, 25)
    _GUICtrlButton_SetImageList($rdo[0], $hImageSmall)

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

    $chk[0] = GUICtrlCreateCheckbox("Check Button 1", 260, 10, 120, 25)
    _GUICtrlButton_SetImageList($chk[0], $hImageSmall)

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

    For $x = 1 To 5
    $btn[$x] = GUICtrlCreateButton("Button " & $x + 1, 10, $y, 90, 55)
    _GUICtrlButton_SetImageList($btn[$x], _GetImageListHandle("shell32.dll", $iIcon + $x, True), $x)
    $rdo[$x] = GUICtrlCreateRadio("Radiobutton " & $x + 1, 120, $y, 120, 35)
    _GUICtrlButton_SetImageList($rdo[$x], _GetImageListHandle("shell32.dll", $iIcon + $x), $x)
    $chk[$x] = GUICtrlCreateCheckbox("Check Button " & $x + 1, 260, $y, 120, 35)
    _GUICtrlButton_SetImageList($chk[$x], _GetImageListHandle("shell32.dll", $iIcon + $x), $x)
    $y += 60
    Next

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd

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

    Exit
    EndFunc ;==>_Main

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

    ; Verwendet die Imagelist um ein Bild zu setzen und Text auf den Buttons darzustellen
    Func _GetImageListHandle($sFile, $nIconID = 0, $fLarge = False)
    Local $iSize = 16
    If $fLarge Then $iSize = 32

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

    Local $hImage = _GUIImageList_Create($iSize, $iSize, 5, 3)
    If StringUpper(StringMid($sFile, StringLen($sFile) - 2)) = "BMP" Then
    _GUIImageList_AddBitmap($hImage, $sFile)
    Else
    _GUIImageList_AddIcon($hImage, $sFile, $nIconID, $fLarge)
    EndIf
    Return $hImage
    EndFunc ;==>_GetImageListHandle

    [/autoit]