Toolbar mehrere Button

  • Hi @ Alle
    habe ein Problem mit einer Toolbar mit 3 Buttons. Wie kann man überprüfen wann der Button gedrückt wird. Welche Styles muss ich bei AddButton setzen?

    Wäre schön wenn ihr mir helft. In der Hilfe stand zwar was dazu aber ich hab das nicht so verstanden.

    Der Code:

    Spoiler anzeigen
    [autoit]

    $window = GUICreate("", 119, 45, 192, 124, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_TOPMOST))
    $ImageList1 = _GUIImageList_Create(32, 32, 5)
    _GUIImageList_AddIcon($ImageList1, @ScriptDir & "\icons\****", 0, True)
    _GUIImageList_AddIcon($ImageList1, @ScriptDir & "\icons\*****", 0, True)
    _GUIImageList_AddIcon($ImageList1, @ScriptDir & "\icons\*****", 0, True)
    $ToolBar1 = _GUICtrlToolbar_Create($window, 0)
    _GUICtrlToolbar_SetImageList($ToolBar1, $ImageList1)
    _GUICtrlToolbar_AddButton($ToolBar1, $test1, 0,0,$BTNS_BUTTON)
    _GUICtrlToolbar_AddButton($ToolBar1, $test2, 1)
    _GUICtrlToolbar_AddButton($ToolBar1, $test3, 2)

    [/autoit]

    Habe es auch mit Buttonispressed versucht aber es geht irgendwie nicht
    Danke schonmal im Vorraus!

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Bei mir funktioniert es so:

    [autoit]

    While 1
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[1]) Then _GUIEvent_Menu($Ctrl_Menue_File[0])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[2]) Then _GUIEvent_Menu($Ctrl_Menue_File[1])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[3]) Then _GUIEvent_Menu($Ctrl_Menue_File[2])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[4]) Then _GUIEvent_Menu($Ctrl_Menue_Edit[4])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[5]) Then _GUIEvent_Menu($Ctrl_Menue_Edit[3])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[6]) Then _GUIEvent_Menu($Ctrl_Menue_Edit[5])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[7]) Then _GUIEvent_Menu($Ctrl_Menue_Edit[0])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[8]) Then _GUIEvent_Menu($Ctrl_Menue_Edit[1])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[9]) Then _GUIEvent_Menu($Ctrl_Menue_Options[0])
    If _GUICtrlToolbar_IsButtonPressed($Ctrl_Toolbar[0], $Ctrl_Toolbar[10]) Then _GUIEvent_Menu($Ctrl_Menue_Help[0])
    Sleep(50)
    WEnd

    [/autoit]


    (Auszug aus einem meiner Codes)

  • Kein Thema, dabei fällt mir ein, mach die Icons doch so:

    [autoit]

    Global $Ctrl_Toolbar[11] = ["", 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009]
    $Ctrl_Toolbar[0] = _GUICtrlToolbar_Create($Ctrl_GUI_Form, $TBSTYLE_FLAT)
    _GUICtrlToolbar_AddBitmap($Ctrl_Toolbar[0], 1, -1, $IDB_STD_SMALL_COLOR)
    _GUICtrlToolbar_AddButtonSep($Ctrl_Toolbar[0])
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[1], $STD_FILENEW)
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[2], $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[3], $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($Ctrl_Toolbar[0])
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[4], $STD_COPY)
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[5], $STD_CUT)
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[6], $STD_PASTE)
    _GUICtrlToolbar_EnableButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[6], False)
    _GUICtrlToolbar_AddButtonSep($Ctrl_Toolbar[0])
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[7], $STD_UNDO)
    _GUICtrlToolbar_EnableButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[7], False)
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[8], $STD_REDOW)
    _GUICtrlToolbar_EnableButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[8], False)
    _GUICtrlToolbar_AddButtonSep($Ctrl_Toolbar[0])
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[9], $STD_PROPERTIES)
    _GUICtrlToolbar_AddButton($Ctrl_Toolbar[0], $Ctrl_Toolbar[10], $STD_HELP)

    [/autoit]
  • Den Klick würde ich so erkennen:

    Spoiler anzeigen
    [autoit]

    #include<GUIImageList.au3>
    #include<GUIToolbar.au3>
    #include<ToolbarConstants.au3>
    #include<WindowsConstants.au3>
    #include<GUIConstants.au3>
    Global Enum $FIRST=1000, $BUTTON1, $BUTTON2, $BUTTON3, $LAST

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

    $window = GUICreate("", 119, 45, 192, 124, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_TOPMOST))
    $ImageList1 = _GUIImageList_Create(32, 32, 5)
    _GUIImageList_AddIcon($ImageList1, @ScriptDir & "\icons\****", 0, True)
    _GUIImageList_AddIcon($ImageList1, @ScriptDir & "\icons\*****", 0, True)
    _GUIImageList_AddIcon($ImageList1, @ScriptDir & "\icons\*****", 0, True)
    $ToolBar1 = _GUICtrlToolbar_Create($window, 0)
    _GUICtrlToolbar_SetImageList($ToolBar1, $ImageList1)
    _GUICtrlToolbar_AddButton($ToolBar1, $BUTTON1, 0)
    _GUICtrlToolbar_AddButton($ToolBar1, $BUTTON2, 1)
    _GUICtrlToolbar_AddButton($ToolBar1, $BUTTON3, 2)
    $ToolBarClick = GUICtrlCreateDummy()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $ToolBarClick
    MsgBox(0, 'Geklickt: ', GUICtrlRead($ToolBarClick))
    Case -3 ; GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    Func WM_NOTIFY($hWnd, $uMsg, $wParam, $lParam)
    Local Const $tagNMMOUSE = "HWND hwndFrom; UINT_PTR idFrom; INT code; ULONG_PTR dwItemSpec; ULONG_PTR dwItemData; int pt[2]; LONG_PTR dwHitInfo;"
    Local $NMHDR = DllStructCreate($tagNMMOUSE,$lParam)
    Switch DllStructGetData($NMHDR, "hwndFrom")
    Case $ToolBar1
    Switch DllStructGetData($NMHDR, "code")
    Case $NM_CLICK
    ConsoleWrite("jk" & @CRLF)
    GUICtrlSendToDummy($ToolBarClick, DllStructGetData($NMHDR, "dwItemSpec"))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]