GUIRebar

    • Offizieller Beitrag

    Schau dir mal das Beispiel von _GUICtrlToolbar_Create an, ich glaub das könnte weiterhelfen.

    • Offizieller Beitrag

    Hatte da eine Idee: Für jeden Button des Rebar/Toolbar erstellst du einen DummyControl . Damit kann man dann vorzüglich mit GuiGetMsg oder dem GuiOnEventMode arbeiten. Habe WM_NOTIFY so modifiziert, das es eine Nachricht an die Dummy Controls sendet . Schau dir mal das Beispiel an, ob du es brauchen kannst .

    Spoiler anzeigen
    [autoit]

    #include <GuiToolbar.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiMenu.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp
    Global $hToolbar, $iMemo
    Global $iItem ; Command identifier of the button associated with the notification.
    Global $Dummy1, $Dummy2, $Dummy3, $Dummy4

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

    _Main()

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

    Func _Main()
    Local $hGUI, $aSize, $msg

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

    ; Create GUI
    $hGUI = GUICreate("Toolbar", 400, 300)
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    $aSize = _GUICtrlToolbar_GetMaxSize($hToolbar)
    $iMemo = GUICtrlCreateEdit("", 2, $aSize[1] + 20, 596, 396 - ($aSize[1] + 20), $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    $Dummy1 = GUICtrlCreateDummy()
    $Dummy2 = GUICtrlCreateDummy()
    $Dummy3 = GUICtrlCreateDummy()
    $Dummy4 = GUICtrlCreateDummy()
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")

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

    ; Add standard system bitmaps
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

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

    ; Add buttons
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0, BitOR($BTNS_DROPDOWN, $BTNS_WHOLEDROPDOWN))
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)

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

    ; Loop until user exits
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Dummy1
    MsgBox(0, "Info", "New wurde gedrückt")
    Case $Dummy2
    MsgBox(0, "Info", "FileOpen wurde gedrückt")
    Case $Dummy3
    MsgBox(0, "Info", "FileSave wurde gedrückt")
    Case $Dummy4
    MsgBox(0, "Info", "Help wurde gedrückt")
    EndSwitch
    WEnd

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

    EndFunc ;==>_Main

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

    ; Write message to memo
    Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

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

    ; WM_NOTIFY event handler
    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_LDOWN
    ;----------------------------------------------------------------------------------------------
    MemoWrite("$NM_LDOWN: Clicked Item: " & $iItem & " at index: " & _GUICtrlToolbar_CommandToIndex ($hToolbar, $iItem))
    ;----------------------------------------------------------------------------------------------
    Switch _GUICtrlToolbar_CommandToIndex ($hToolbar, $iItem)
    Case 0
    GUICtrlSendToDummy($Dummy1)
    Case 1
    GUICtrlSendToDummy($Dummy2)
    Case 2
    GUICtrlSendToDummy($Dummy3)
    Case 4
    GUICtrlSendToDummy($Dummy4)
    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    If BitAND($dwFlags, $HICF_LEAVING) = $HICF_LEAVING Then
    MemoWrite("$HICF_LEAVING: " & $i_idOld)
    Else
    Switch $i_idNew
    Case $idNew
    ;----------------------------------------------------------------------------------------------
    MemoWrite("$TBN_HOTITEMCHANGE: $idNew")
    ;----------------------------------------------------------------------------------------------
    Case $idOpen
    ;----------------------------------------------------------------------------------------------
    MemoWrite("$TBN_HOTITEMCHANGE: $idOpen")
    ;----------------------------------------------------------------------------------------------
    Case $idSave
    ;----------------------------------------------------------------------------------------------
    MemoWrite("$TBN_HOTITEMCHANGE: $idSave")
    ;----------------------------------------------------------------------------------------------
    Case $idHelp
    ;----------------------------------------------------------------------------------------------
    MemoWrite("$TBN_HOTITEMCHANGE: $idHelp")
    ;----------------------------------------------------------------------------------------------
    EndSwitch
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

    [/autoit]

    Hier nochmal ein Beispiel mit GUICtrlToolbar_IsButtonPressed.

    Spoiler anzeigen
    [autoit]

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

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

    Opt('MustDeclareVars', 1)

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

    $Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hGUI, $hToolbar, $aStrings[4]
    Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp

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

    ; Create GUI
    $hGUI = GUICreate("Toolbar", 400, 300)
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    GUISetState()

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

    ; Add standard system bitmaps
    Switch _GUICtrlToolbar_GetBitmapFlags($hToolbar)
    Case 0
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR)
    Case 2
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
    EndSwitch

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

    ; Add strings
    $aStrings[0] = _GUICtrlToolbar_AddString($hToolbar, "&New Button")
    $aStrings[1] = _GUICtrlToolbar_AddString($hToolbar, "&Open Button")
    $aStrings[2] = _GUICtrlToolbar_AddString($hToolbar, "&Save Button")
    $aStrings[3] = _GUICtrlToolbar_AddString($hToolbar, "&Help Button")

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

    ; Add buttons
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, $aStrings[0])
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN, $aStrings[1])
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE, $aStrings[2])
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP, $aStrings[3])

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

    Do
    if _GUICtrlToolbar_IsButtonPressed($hToolbar, $idNew) then MsgBox(0, "Info", "New wurde gedrückt")
    if _GUICtrlToolbar_IsButtonPressed($hToolbar, $idOpen) then MsgBox(0, "Info", "FileOpen wurde gedrückt")
    if _GUICtrlToolbar_IsButtonPressed($hToolbar, $idSave) then MsgBox(0, "Info", "FileSave wurde gedrückt")
    if _GUICtrlToolbar_IsButtonPressed($hToolbar, $idHelp) then MsgBox(0, "Info", "Help wurde gedrückt")
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    EndFunc ;==>_Main

    [/autoit]
  • Ach bitte, so schwer kann es doch nicht sein ;(

    Ich habe das hier gefunden, aber es funktioniert nicht richtig...

    Spoiler anzeigen
    [autoit]

    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    ;----------------------------------------------------------------------------------------------
    MsgBox(0,"", _GUICtrlToolbar_CommandToIndex ($hToolbar, $iItem))
    ;----------------------------------------------------------------------------------------------
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

    [/autoit]
    • Offizieller Beitrag

    Deepred ich weiß ja nicht wo bei dir das Problem liegt . Habe jetzt mal das 1. Beispielscript verkürzt . Es wird nichts mehr in das Memo geschrieben .

    Spoiler anzeigen
    [autoit]

    #include <GuiToolbar.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiMenu.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp
    Global $hToolbar, $iMemo
    Global $iItem ; Command identifier of the button associated with the notification.
    Global $Dummy1, $Dummy2, $Dummy3, $Dummy4

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

    _Main()

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

    Func _Main()
    Local $hGUI, $aSize, $msg

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

    ; Create GUI
    $hGUI = GUICreate("Toolbar", 400, 300)
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    $aSize = _GUICtrlToolbar_GetMaxSize($hToolbar)
    $iMemo = GUICtrlCreateEdit("", 2, $aSize[1] + 20, 596, 396 - ($aSize[1] + 20), $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    $Dummy1 = GUICtrlCreateDummy()
    $Dummy2 = GUICtrlCreateDummy()
    $Dummy3 = GUICtrlCreateDummy()
    $Dummy4 = GUICtrlCreateDummy()
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")

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

    ; Add standard system bitmaps
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

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

    ; Add buttons
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0, BitOR($BTNS_DROPDOWN, $BTNS_WHOLEDROPDOWN))
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)

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

    ; Loop until user exits
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Dummy1
    MsgBox(0, "Info", "New wurde gedrückt")
    Case $Dummy2
    MsgBox(0, "Info", "FileOpen wurde gedrückt")
    Case $Dummy3
    MsgBox(0, "Info", "FileSave wurde gedrückt")
    Case $Dummy4
    MsgBox(0, "Info", "Help wurde gedrückt")
    EndSwitch
    WEnd

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

    EndFunc ;==>_Main

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

    ; Write message to memo
    Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

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

    ; WM_NOTIFY event handler
    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    Switch _GUICtrlToolbar_CommandToIndex($hToolbar, $iItem)
    Case 0
    GUICtrlSendToDummy($Dummy1)
    Case 1
    GUICtrlSendToDummy($Dummy2)
    Case 2
    GUICtrlSendToDummy($Dummy3)
    Case 4
    GUICtrlSendToDummy($Dummy4)
    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

    [/autoit]

    Edit : Hm, hab nochmal genau gelesen was du willst.

    Zitat

    Die Beispiele sind zwar gut, aber es wird ein Event schon ausgelöst, obwohl der Mauszeiger nach gedrückt wird... Kann man das nicht so machen wie bei Scite die Buttons?

    Willst du das erst nach Loslassen der Maus die Message gestartet wird ? Oder was meinst du ?

  • Zitat

    Willst du das erst nach Loslassen der Maus die Message gestartet wird ?

    Ja. Man klickt auf einen Button ===> Nichts passiert. Man lässt los ===> Und schon erscheint z.b eine MsgBox.

    __________________________________
    Jetzt hab ich mal deinen Beispiel benutzt, doch es funktioniert immer noch nicht (Script siehe Anhang). Wenn man auf den blauen Kreuzbutton klickt beendet sich das Script...verstehe ich nicht... .und das letzte Button funktioniert nicht.
    Wieso funktioniert das nicht????

    • Offizieller Beitrag

    Also hab das mal getestet. Der Fehler kommt von deinem Icon , frag mich nicht wieso , ist aber so. Tausch mal das Icon um, das Probleme macht und das Script beendet sich nicht mehr. Dein letztes Icon in der Liste kann nicht funzen. Schau dir mal deine Case Schleife bei WM_NOTIFY an . Da hast du die 3 übersprungen. Ausserdem solltest du die beiden WM_NOTIFY BEFEHLE zusammenfassen, sonst wird nur der letzte den du mit GUIRegisterMsg gesetzt hast ausgeführt .


    Edit: Der Fehler liegt nicht am ICON selbst, sondern nur an der Position in der ImageListe. Aus irgendwelchen, unerfindlichen Gründen wird beim drücken des 3. ICONS die GuiMessage -3 abgefeurt. Also $GUI_EVENT_CLOSE.

  • Zitat

    Der Fehler kommt von deinem Icon , frag mich nicht wieso , ist aber so

    Wie soll das denn gehen^^. Wenn ich das exit-Befehl nach $GUI_Event_Close entferne, wird es nicht beendet.

    Zitat

    Ausserdem solltest du die beiden WM_NOTIFY BEFEHLE zusammenfassen, sonst wird nur der letzte den du mit GUIRegisterMsg gesetzt hast ausgeführt .

    Und wie soll man das zusammenfassen? Kenn mich mit den ganzen DllStruct...nicht aus :huh:

    • Offizieller Beitrag

    Habe das ganze für dich mal lauffähig gemacht . Beachte mal die Variablendeklaration für die Toolbar Items !! Hab auch die Case Auswahl in der WM_NOTIFY angepaßt. Die Seperatoren zählen beim Index mit . Deweiteren habe ich deine 2 WM_NOTIFY Funktionen mal zusammengeschmissen .

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_Au3check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.0.0
    Author: Burak Keskin

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <GuiReBar.au3>
    #include <GuiToolBar.au3>
    #include <GuiComboBox.au3>
    #include <GuiDateTimePicker.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>

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

    Global $CurrentDirectory
    ;~ Global Enum $idNew = 1000
    Global $iItem ; Command identifier of the button associated with the notification.
    Global Enum $item1 = 1000, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9, $item10, $item11
    $hgui = GUICreate("Music Manager", 683, 423, 192, 124)
    ;~ GUISetBkColor(0xFFFFFF)

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

    GUICtrlCreateGraphic(0, 50, 683, 379)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetState(-1, $GUI_Disable)

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

    GUICtrlCreateMenu("Datei")
    GUICtrlCreateMenu("Bearbeiten")
    GUICtrlCreateMenu("Extras")

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

    $hToolbar = _GUICtrlToolbar_Create($hgui)

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

    $hImage = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Previous.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Next.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\add.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Edit.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Delete.ico")

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

    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Stop.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Play.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\pAUSE.ico")

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

    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Calendar.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Calendar.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Calendar.ico")

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

    _GUICtrlToolbar_SetImageList($hToolbar, $hImage)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item1, 0)
    _GUICtrlToolbar_AddButton($hToolbar, $item2, 1)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $item3, 2)
    _GUICtrlToolbar_AddButton($hToolbar, $item4, 3)
    _GUICtrlToolbar_AddButton($hToolbar, $item5, 4)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item6, 5)
    _GUICtrlToolbar_AddButton($hToolbar, $item7, 6)
    _GUICtrlToolbar_AddButton($hToolbar, $item8, 7)
    _GUICtrlToolbar_AddButton($hToolbar, $item9, 8)
    _GUICtrlToolbar_AddButton($hToolbar, $item10, 9)
    _GUICtrlToolbar_AddButton($hToolbar, $item11, 10)

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

    $Dummy1 = GUICtrlCreateDummy()
    $Dummy2 = GUICtrlCreateDummy()
    $Dummy3 = GUICtrlCreateDummy()
    $Dummy4 = GUICtrlCreateDummy()
    $Dummy5 = GUICtrlCreateDummy()
    $Dummy6 = GUICtrlCreateDummy()
    $Dummy7 = GUICtrlCreateDummy()
    $Dummy8 = GUICtrlCreateDummy()
    $Dummy9 = GUICtrlCreateDummy()
    $Dummy10 = GUICtrlCreateDummy()
    $Dummy11 = GUICtrlCreateDummy()

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

    $ListView1 = GUICtrlCreateListView("Navigation", 0, 40, 683, 379)
    GUICtrlSetStyle($ListView1, $LVS_ICON)

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

    _GUICtrlListView_AddItem($ListView1, "Radiosender", 0)
    _GUICtrlListView_AddItem($ListView1, "Musik", 1)
    _GUICtrlListView_AddItem($ListView1, "Favouriten", 2)

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

    $hImage = _GUIImageList_Create(48, 48, 5, 1) ; Icons 32x32, Farbtiefe 5: 32bit, 1: verwende Transparenz)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Radio2.ico", 48)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\MP3.ico", 48)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Favouriten.ico", 48); in hImage ordner.ico, Index 0, das Große Icon (32x32) einfügen
    _GUICtrlListView_SetImageList($ListView1, $hImage, 0)

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

    $ListView2 = GUICtrlCreateListView("Name des Senders:|Genre|Bewertung|Internetadresse:", 0, 44, 683, 379)
    _GUICtrlListView_SetColumnWidth($ListView2, 0, 170)
    _GUICtrlListView_SetColumnWidth($ListView2, 1, 100)
    _GUICtrlListView_SetColumnWidth($ListView2, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView2, 3, 322)
    _Set_Sender($ListView2)
    GUICtrlSetState($ListView2, $GUI_Hide)

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

    $ListView3 = GUICtrlCreateListView("Titel|Länge|Bewertung|Bitrate|Größe", 0, 44, 683, 379)
    _GUICtrlListView_SetColumnWidth($ListView3, 0, 460)
    _GUICtrlListView_SetColumnWidth($ListView3, 1, 50)
    _GUICtrlListView_SetColumnWidth($ListView3, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView3, 3, 50)
    GUICtrlCreateListViewItem("Eminem|17:60|*****|180MB|5Gb", $ListView3)
    GUICtrlSetState($ListView3, $GUI_Hide)

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

    $ListView4 = GUICtrlCreateListView("Titel|Länge|Bewertung|Bitrate|Größe", 0, 44, 683, 379)
    GUICtrlSetState($ListView4, $GUI_Hide)

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

    GUISetState(@SW_SHOW)

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

    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") ;Das hier weglassen, damit die ListViews funktionieren!!!

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

    $CurrentDirectory = "Startseite"

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    ConsoleWrite($nMsg & @LF)
    Case $GUI_EVENT_CLOSE
    Exit
    ;~ _SendData($Command, $Remote_ReceiverID_Name)

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

    Case $Dummy1
    MsgBox(0, "Info", "1")
    Case $Dummy2
    MsgBox(0, "Info", "2")
    Case $Dummy3
    MsgBox(0, "Info", "3")
    Case $Dummy4
    MsgBox(0, "Info", "4")
    Case $Dummy5
    MsgBox(0, "Info", "5")
    Case $Dummy6
    MsgBox(0, "Info", "6")
    Case $Dummy7
    MsgBox(0, "Info", "7")
    Case $Dummy8
    MsgBox(0, "Info", "8")
    Case $Dummy9
    MsgBox(0, "Info", "9")
    Case $Dummy10
    MsgBox(0, "Info", "10")
    Case $Dummy11
    MsgBox(0, "Info", "11")
    EndSwitch
    WEnd

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

    Func _Show_Sender()
    GUICtrlSetState($ListView2, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    GUICtrlSetState($ListView3, $GUI_Hide)
    GUICtrlSetState($ListView4, $GUI_Hide)
    $CurrentDirectory = "Radiosender"
    EndFunc ;==>_Show_Sender

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

    Func _Show_Musik()
    GUICtrlSetState($ListView3, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    GUICtrlSetState($ListView2, $GUI_Hide)
    GUICtrlSetState($ListView4, $GUI_Hide)
    $CurrentDirectory = "Musik"
    EndFunc ;==>_Show_Musik

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

    Func _Show_Favouriten()
    GUICtrlSetState($ListView4, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    GUICtrlSetState($ListView2, $GUI_Hide)
    GUICtrlSetState($ListView3, $GUI_Hide)
    $CurrentDirectory = "Favouriten"
    EndFunc ;==>_Show_Favouriten

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

    Func _Show_Startseite()
    GUICtrlSetState($ListView1, $GUI_Show)
    GUICtrlSetState($ListView2, $GUI_Hide)
    GUICtrlSetState($ListView3, $GUI_Hide)
    GUICtrlSetState($ListView4, $GUI_Hide)
    $CurrentDirectory = "Startseite"
    EndFunc ;==>_Show_Startseite

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

    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_LDOWN
    Switch _GUICtrlToolbar_CommandToIndex($hToolbar, $iItem)
    Case 0
    GUICtrlSendToDummy($Dummy1)
    Case 1
    GUICtrlSendToDummy($Dummy2)
    Case 3
    GUICtrlSendToDummy($Dummy3)
    Case 4
    GUICtrlSendToDummy($Dummy4)
    Case 5
    GUICtrlSendToDummy($Dummy5)
    Case 7
    GUICtrlSendToDummy($Dummy6)
    Case 8
    GUICtrlSendToDummy($Dummy7)
    Case 9
    GUICtrlSendToDummy($Dummy8)
    Case 10
    GUICtrlSendToDummy($Dummy9)
    Case 11
    GUICtrlSendToDummy($Dummy10)
    Case 12
    GUICtrlSendToDummy($Dummy11)
    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    EndSwitch
    Switch $idFrom
    Case $ListView1
    Select
    Case $code = $NM_DBLCLK
    $getselectedplugin1 = _GUICtrlListView_GetSelectionMark($ListView1)
    If $getselectedplugin1 = -1 Then
    Else
    $Selected_Item = _GUICtrlListView_GetItemText($ListView1, $getselectedplugin1)
    If $Selected_Item = "Radiosender" Then
    GUICtrlSetState($ListView2, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    ElseIf $Selected_Item = "Musik" Then
    GUICtrlSetState($ListView3, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    ElseIf $Selected_Item = "Favouriten" Then
    GUICtrlSetState($ListView4, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    EndIf
    EndIf
    EndSelect
    Case $ListView2
    Select
    Case $event = $NM_DBLCLK
    $getselectedplugin1 = _GUICtrlListView_GetSelectionMark($ListView2)
    If $getselectedplugin1 = -1 Then
    Else
    $Selected_Item = _GUICtrlListView_GetItemTextArray($ListView2)
    _SendData('New_Media("' & $Selected_Item[4] & '"', $Remote_ReceiverID_Name)
    _SendData('_SetStatus("Play")', $Remote_ReceiverID_Name)
    EndIf
    EndSelect
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GUIImageList_AddIcon
    ; Description ...: Adds an icon to an image list
    ; Syntax.........: _GUIImageList_AddIcon($hWnd, $sFile[, $iIndex=0[, $fLarge = False])
    ; Parameters ....: $hWnd - Handle to the control
    ; $sFile - Path to the icon that contains the image
    ; $iIndex - Specifies the zero-based index of the icon to extract
    ; $fLarge - Extract Large Icon
    ; Return values .: Success - The index of the image
    ; Failrue - -1
    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: Prog@ndy
    ; Remarks .......:
    ; Related .......: _GUIImageList_Add, _GUIImageList_AddBitmap
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================
    Func _GUIImageList_AddIconSize($hWnd, $sFile, $iSize = 32)
    Local $tIcon, $iResult, $hIcon

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

    $hIcon = _WinAPI_LoadImage(0, $sFile, $IMAGE_ICON, $iSize, $iSize, $LR_LOADFROMFILE)
    _WinAPI_Check("_GUIImageList_AddIcon", ($hIcon = 0), -1)

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

    $iResult = _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon)
    _WinAPI_Check("_GUIImageList_AddIcon", ($iResult = -1), -2)
    _WinAPI_DestroyIcon($hIcon)
    Return $iResult
    EndFunc ;==>_GUIImageList_AddIconSize

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

    Func _Set_Sender($ListView)
    _GUICtrlListView_DeleteAllItems($ListView)
    $readsections33 = IniReadSection(@ScriptDir & "\sender.ini", "Index")
    $readsections44 = IniReadSection(@ScriptDir & "\sender.ini", "Sendername")
    $readsections55 = IniReadSection(@ScriptDir & "\sender.ini", "Senderurl")
    $readsections66 = IniReadSection(@ScriptDir & "\sender.ini", "Genre")
    $readsections77 = IniReadSection(@ScriptDir & "\sender.ini", "bewertung")
    For $varforone5 = 1 To $readsections33[0][0]
    GUICtrlCreateListViewItem($readsections44[$varforone5][1] & "|" & $readsections66[$varforone5][1] & "|" & $readsections77[$varforone5][1] & "|" & $readsections55[$varforone5][1], $ListView)
    Next
    EndFunc ;==>_Set_Sender

    [/autoit]
  • Ich habe hier ein Beispiel für $NM_CLICK (nicht in dein Skript eingebaut)

    Spoiler anzeigen
    [autoit]

    #include <GuiToolbar.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiMenu.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp
    Global $hToolbar, $iMemo
    Global $Dummy1, $Dummy2, $Dummy3, $Dummy4

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

    _Main()

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

    Func _Main()
    Local $hGUI, $aSize, $msg

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

    ; Create GUI
    $hGUI = GUICreate("Toolbar", 400, 300)
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    $aSize = _GUICtrlToolbar_GetMaxSize($hToolbar)
    $iMemo = GUICtrlCreateEdit("", 2, $aSize[1] + 20, 596, 396 - ($aSize[1] + 20), $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    $Dummy1 = GUICtrlCreateDummy()
    $Dummy2 = GUICtrlCreateDummy()
    $Dummy3 = GUICtrlCreateDummy()
    $Dummy4 = GUICtrlCreateDummy()
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")

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

    ; Add standard system bitmaps
    _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

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

    ; Add buttons
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW, 0, BitOR($BTNS_DROPDOWN, $BTNS_WHOLEDROPDOWN))
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)

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

    ; Loop until user exits
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Dummy1
    MsgBox(0, "Info", "New wurde gedrückt")
    Case $Dummy2
    MsgBox(0, "Info", "FileOpen wurde gedrückt")
    Case $Dummy3
    MsgBox(0, "Info", "FileSave wurde gedrückt")
    Case $Dummy4
    MsgBox(0, "Info", "Help wurde gedrückt")
    EndSwitch
    WEnd

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

    EndFunc ;==>_Main

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

    ; Write message to memo
    Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

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

    ; WM_NOTIFY event handler
    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $hwndFrom, $code, $idFrom, $iItem
    Local $tNMTOOLBAR, $tNMACTIVE
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    $tNMACTIVE = DllStructCreate($tagNMITEMACTIVATE , $lParam)
    $iItem = DllStructGetData($tNMACTIVE, "Index")
    If $iItem = -1 Then Return $GUI_RUNDEFMSG
    ;----------------------------------------------------------------------------------------------
    MemoWrite("$NM_CLICK: Clicked Item: " & $iItem & " at index: " & _GUICtrlToolbar_CommandToIndex ($hToolbar, $iItem))
    ;----------------------------------------------------------------------------------------------
    Switch _GUICtrlToolbar_CommandToIndex ($hToolbar, $iItem)
    Case 0
    GUICtrlSendToDummy($Dummy1)
    Case 1
    GUICtrlSendToDummy($Dummy2)
    Case 2
    GUICtrlSendToDummy($Dummy3)
    Case 4
    GUICtrlSendToDummy($Dummy4)
    EndSwitch
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

    [/autoit]
    • Offizieller Beitrag

    @progandy OMG, hättest du des net schon früher posten können ? :D Dann hätte ich mir die ganze Grübelei ersparen können. Hm, jetzt werd ich auch mal Toolbars in meine Scripte einbauen, weiß ja jetzt wie des geht.

    @Deepred hab $NM_CLICK mal in dein Script eingebaut :D

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_Au3check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.0.0
    Author: Burak Keskin

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <GuiReBar.au3>
    #include <GuiToolBar.au3>
    #include <GuiComboBox.au3>
    #include <GuiDateTimePicker.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>

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

    Global $CurrentDirectory
    ;~ Global Enum $idNew = 1000
    Global $iItem ; Command identifier of the button associated with the notification.
    Global Enum $item1 = 1000, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9, $item10, $item11
    $hgui = GUICreate("Music Manager", 683, 423, 192, 124)
    ;~ GUISetBkColor(0xFFFFFF)

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

    GUICtrlCreateGraphic(0, 50, 683, 379)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetState(-1, $GUI_Disable)

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

    GUICtrlCreateMenu("Datei")
    GUICtrlCreateMenu("Bearbeiten")
    GUICtrlCreateMenu("Extras")

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

    $hToolbar = _GUICtrlToolbar_Create($hgui)

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

    $hImage = _GUIImageList_Create(32, 32, 5, 3, 3)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Previous.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Next.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\add.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Edit.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Delete.ico")

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

    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Stop.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Play.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\pAUSE.ico")

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

    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Calendar.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Calendar.ico")
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Img\Calendar.ico")

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

    _GUICtrlToolbar_SetImageList($hToolbar, $hImage)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item1, 0)
    _GUICtrlToolbar_AddButton($hToolbar, $item2, 1)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $item3, 2)
    _GUICtrlToolbar_AddButton($hToolbar, $item4, 3)
    _GUICtrlToolbar_AddButton($hToolbar, $item5, 4)
    _GUICtrlToolbar_AddButtonSep($hToolbar)

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

    _GUICtrlToolbar_AddButton($hToolbar, $item6, 5)
    _GUICtrlToolbar_AddButton($hToolbar, $item7, 6)
    _GUICtrlToolbar_AddButton($hToolbar, $item8, 7)
    _GUICtrlToolbar_AddButton($hToolbar, $item9, 8)
    _GUICtrlToolbar_AddButton($hToolbar, $item10, 9)
    _GUICtrlToolbar_AddButton($hToolbar, $item11, 10)

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

    $Dummy1 = GUICtrlCreateDummy()
    $Dummy2 = GUICtrlCreateDummy()
    $Dummy3 = GUICtrlCreateDummy()
    $Dummy4 = GUICtrlCreateDummy()
    $Dummy5 = GUICtrlCreateDummy()
    $Dummy6 = GUICtrlCreateDummy()
    $Dummy7 = GUICtrlCreateDummy()
    $Dummy8 = GUICtrlCreateDummy()
    $Dummy9 = GUICtrlCreateDummy()
    $Dummy10 = GUICtrlCreateDummy()
    $Dummy11 = GUICtrlCreateDummy()

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

    $ListView1 = GUICtrlCreateListView("Navigation", 0, 40, 683, 379)
    GUICtrlSetStyle($ListView1, $LVS_ICON)

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

    _GUICtrlListView_AddItem($ListView1, "Radiosender", 0)
    _GUICtrlListView_AddItem($ListView1, "Musik", 1)
    _GUICtrlListView_AddItem($ListView1, "Favouriten", 2)

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

    $hImage = _GUIImageList_Create(48, 48, 5, 1) ; Icons 32x32, Farbtiefe 5: 32bit, 1: verwende Transparenz)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Radio2.ico", 48)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\MP3.ico", 48)
    _GUIImageList_AddIconSize($hImage, @ScriptDir & "\Favouriten.ico", 48); in hImage ordner.ico, Index 0, das Große Icon (32x32) einfügen
    _GUICtrlListView_SetImageList($ListView1, $hImage, 0)

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

    $ListView2 = GUICtrlCreateListView("Name des Senders:|Genre|Bewertung|Internetadresse:", 0, 44, 683, 379)
    _GUICtrlListView_SetColumnWidth($ListView2, 0, 170)
    _GUICtrlListView_SetColumnWidth($ListView2, 1, 100)
    _GUICtrlListView_SetColumnWidth($ListView2, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView2, 3, 322)
    _Set_Sender($ListView2)
    GUICtrlSetState($ListView2, $GUI_Hide)

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

    $ListView3 = GUICtrlCreateListView("Titel|Länge|Bewertung|Bitrate|Größe", 0, 44, 683, 379)
    _GUICtrlListView_SetColumnWidth($ListView3, 0, 460)
    _GUICtrlListView_SetColumnWidth($ListView3, 1, 50)
    _GUICtrlListView_SetColumnWidth($ListView3, 2, 70)
    _GUICtrlListView_SetColumnWidth($ListView3, 3, 50)
    GUICtrlCreateListViewItem("Eminem|17:60|*****|180MB|5Gb", $ListView3)
    GUICtrlSetState($ListView3, $GUI_Hide)

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

    $ListView4 = GUICtrlCreateListView("Titel|Länge|Bewertung|Bitrate|Größe", 0, 44, 683, 379)
    GUICtrlSetState($ListView4, $GUI_Hide)

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

    GUISetState(@SW_SHOW)

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

    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") ;Das hier weglassen, damit die ListViews funktionieren!!!

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

    $CurrentDirectory = "Startseite"

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    ConsoleWrite($nMsg & @LF)
    Case $GUI_EVENT_CLOSE
    Exit
    ;~ _SendData($Command, $Remote_ReceiverID_Name)

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

    Case $Dummy1
    MsgBox(0, "Info", "1")
    Case $Dummy2
    MsgBox(0, "Info", "2")
    Case $Dummy3
    MsgBox(0, "Info", "3")
    Case $Dummy4
    MsgBox(0, "Info", "4")
    Case $Dummy5
    MsgBox(0, "Info", "5")
    Case $Dummy6
    MsgBox(0, "Info", "6")
    Case $Dummy7
    MsgBox(0, "Info", "7")
    Case $Dummy8
    MsgBox(0, "Info", "8")
    Case $Dummy9
    MsgBox(0, "Info", "9")
    Case $Dummy10
    MsgBox(0, "Info", "10")
    Case $Dummy11
    MsgBox(0, "Info", "11")
    EndSwitch
    WEnd

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

    Func _Show_Sender()
    GUICtrlSetState($ListView2, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    GUICtrlSetState($ListView3, $GUI_Hide)
    GUICtrlSetState($ListView4, $GUI_Hide)
    $CurrentDirectory = "Radiosender"
    EndFunc ;==>_Show_Sender

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

    Func _Show_Musik()
    GUICtrlSetState($ListView3, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    GUICtrlSetState($ListView2, $GUI_Hide)
    GUICtrlSetState($ListView4, $GUI_Hide)
    $CurrentDirectory = "Musik"
    EndFunc ;==>_Show_Musik

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

    Func _Show_Favouriten()
    GUICtrlSetState($ListView4, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    GUICtrlSetState($ListView2, $GUI_Hide)
    GUICtrlSetState($ListView3, $GUI_Hide)
    $CurrentDirectory = "Favouriten"
    EndFunc ;==>_Show_Favouriten

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

    Func _Show_Startseite()
    GUICtrlSetState($ListView1, $GUI_Show)
    GUICtrlSetState($ListView2, $GUI_Hide)
    GUICtrlSetState($ListView3, $GUI_Hide)
    GUICtrlSetState($ListView4, $GUI_Hide)
    $CurrentDirectory = "Startseite"
    EndFunc ;==>_Show_Startseite

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

    Func _WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $event, $hwndFrom, $code, $i_idNew, $dwFlags, $lResult, $idFrom, $i_idOld
    Local $tNMTOOLBAR, $tNMTBHOTITEM
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $idFrom = DllStructGetData($tNMHDR, "IDFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Switch $hwndFrom
    Case $hToolbar
    Switch $code
    Case $NM_CLICK
    $tNMACTIVE = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    $iItem = DllStructGetData($tNMACTIVE, "Index")
    If $iItem = -1 Then Return $GUI_RUNDEFMSG
    Switch _GUICtrlToolbar_CommandToIndex($hToolbar, $iItem)
    Case 0
    GUICtrlSendToDummy($Dummy1)
    Case 1
    GUICtrlSendToDummy($Dummy2)
    Case 3
    GUICtrlSendToDummy($Dummy3)
    Case 4
    GUICtrlSendToDummy($Dummy4)
    Case 5
    GUICtrlSendToDummy($Dummy5)
    Case 7
    GUICtrlSendToDummy($Dummy6)
    Case 8
    GUICtrlSendToDummy($Dummy7)
    Case 9
    GUICtrlSendToDummy($Dummy8)
    Case 10
    GUICtrlSendToDummy($Dummy9)
    Case 11
    GUICtrlSendToDummy($Dummy10)
    Case 12
    GUICtrlSendToDummy($Dummy11)
    EndSwitch
    Case $TBN_HOTITEMCHANGE
    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
    $i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
    $i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
    $iItem = $i_idNew
    $dwFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
    EndSwitch
    EndSwitch
    Switch $idFrom
    Case $ListView1
    Select
    Case $code = $NM_DBLCLK
    $getselectedplugin1 = _GUICtrlListView_GetSelectionMark($ListView1)
    If $getselectedplugin1 = -1 Then
    Else
    $Selected_Item = _GUICtrlListView_GetItemText($ListView1, $getselectedplugin1)
    If $Selected_Item = "Radiosender" Then
    GUICtrlSetState($ListView2, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    ElseIf $Selected_Item = "Musik" Then
    GUICtrlSetState($ListView3, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    ElseIf $Selected_Item = "Favouriten" Then
    GUICtrlSetState($ListView4, $GUI_Show)
    GUICtrlSetState($ListView1, $GUI_Hide)
    EndIf
    EndIf
    EndSelect
    Case $ListView2
    Select
    Case $event = $NM_DBLCLK
    $getselectedplugin1 = _GUICtrlListView_GetSelectionMark($ListView2)
    If $getselectedplugin1 = -1 Then
    Else
    $Selected_Item = _GUICtrlListView_GetItemTextArray($ListView2)
    _SendData('New_Media("' & $Selected_Item[4] & '"', $Remote_ReceiverID_Name)
    _SendData('_SetStatus("Play")', $Remote_ReceiverID_Name)
    EndIf
    EndSelect
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GUIImageList_AddIcon
    ; Description ...: Adds an icon to an image list
    ; Syntax.........: _GUIImageList_AddIcon($hWnd, $sFile[, $iIndex=0[, $fLarge = False])
    ; Parameters ....: $hWnd - Handle to the control
    ; $sFile - Path to the icon that contains the image
    ; $iIndex - Specifies the zero-based index of the icon to extract
    ; $fLarge - Extract Large Icon
    ; Return values .: Success - The index of the image
    ; Failrue - -1
    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: Prog@ndy
    ; Remarks .......:
    ; Related .......: _GUIImageList_Add, _GUIImageList_AddBitmap
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================
    Func _GUIImageList_AddIconSize($hWnd, $sFile, $iSize = 32)
    Local $tIcon, $iResult, $hIcon

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

    $hIcon = _WinAPI_LoadImage(0, $sFile, $IMAGE_ICON, $iSize, $iSize, $LR_LOADFROMFILE)
    _WinAPI_Check("_GUIImageList_AddIcon", ($hIcon = 0), -1)

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

    $iResult = _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon)
    _WinAPI_Check("_GUIImageList_AddIcon", ($iResult = -1), -2)
    _WinAPI_DestroyIcon($hIcon)
    Return $iResult
    EndFunc ;==>_GUIImageList_AddIconSize

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

    Func _Set_Sender($ListView)
    _GUICtrlListView_DeleteAllItems($ListView)
    $readsections33 = IniReadSection(@ScriptDir & "\sender.ini", "Index")
    $readsections44 = IniReadSection(@ScriptDir & "\sender.ini", "Sendername")
    $readsections55 = IniReadSection(@ScriptDir & "\sender.ini", "Senderurl")
    $readsections66 = IniReadSection(@ScriptDir & "\sender.ini", "Genre")
    $readsections77 = IniReadSection(@ScriptDir & "\sender.ini", "bewertung")
    For $varforone5 = 1 To $readsections33[0][0]
    GUICtrlCreateListViewItem($readsections44[$varforone5][1] & "|" & $readsections66[$varforone5][1] & "|" & $readsections77[$varforone5][1] & "|" & $readsections55[$varforone5][1], $ListView)
    Next
    EndFunc ;==>_Set_Sender

    [/autoit]

    Edit @progandy woher weißt du das mit $tagNMITEMACTIVATE bei einer Toolbar ?
    Wäre im Lebkuchentag nicht draufgekommen in der HIlfe steht

    Zitat

    Sent by a list-view control when the user activates an item


  • Edit @progandy woher weißt du das mit $tagNMITEMACTIVATE bei einer Toolbar ?
    Wäre im Lebkuchentag nicht draufgekommen in der HIlfe steht


    Einfach ausprobiert ;) Vielleicht stimmt die Struct nicht, aber es funktioniert auf jeden Fall.
    //Edit: Stimmt, das ist falsch. Aber das stimmt in $NM_CLICK (toolbar):

    [autoit]

    $tNMACTIVE = DllStructCreate($tagNMHDR & ";long_ptr ItemSpec; ulong_ptr ItemData; int X; int Y;long_ptr HitInfo", $lParam) ; $tagNMMOUSE
    $iItem = DllStructGetData($tNMACTIVE, "ItemSpec")
    If $iItem = -1 Then Return $GUI_RUNDEFMSG

    [/autoit]

    Einmal editiert, zuletzt von progandy (6. Mai 2009 um 14:19)