[IN ARBEIT] Neues Design?!?

  • Öhm ... was ist JSound?
    Ist das nötig oder könnte man das nicht eigentlich mit "Andere Datei" unter dem Button "Datei zur Playlist hinzufügen" vereinen?

  • JSound ist ein Kompressionsverfahren von mir und meinem freund, das sollte nen Extra Button haben...

    Und nochmal vielen Dank für die mühe, die ihr euch macht! :thumbup:
    Best community 4ever! :party: :party: :party: :rock:

  • Und woher genau kann man so eine JSound haben ? :D
    Ich meine, .... das scheint ja recht unbekannt zu sein oder irre ich da?

  • ja, die dll wird noch so erweitert , dass man mp3s packen kann...
    immoment können nur wir das...
    ich schick dir mal eine wenn die EXE fertig ist...

  • So. Musik ist schonmal Fertig. Ich hab das Layout geändert, sodass die beiden Lautsprecheranzeigen jetzt einfach nebeneinander sind und keine Beschriftung mehr haben (Sooo dumm ist der Standart-Benutzer nun auch net ;) ). Und die Spektralanalyse ist jetzt waagerecht, so wie man es auch kennt. Musst halt nur das GDI+ Teil noch n bischen umschreiben. Die Progressbar die vorher ganz oben war ist jetzt der Slider (den man NICHT ziehen kann (Absicht ^^)). Daneben sind wie bei iTunes zwei Label, das eine für die schon verstrichene Zeit, das andere für die Gesamtzeit oder halt die noch ausstehende Zeit. Dadrunter ist dann halt möglichst groß die Playlist.
    //Edit: Und das Radio ist jetzt auch drin. Einfach eine Liste wo man Sender hinzufügen kann. Finde ich besser. Und man soll dann einfach nen Doppelklick auf den Sender machen und der wird dann fett (dann braucht man auch kein "Gerade gespielt:" mehr). Und zum pausieren hat man ja eh den Knopf links oben.

  • naja also ich würde wenn du eh schon so ein Design erstellst auch den Slider, den Progress und die Buttons designen ... dann sieht das viel besser aus ... für buttons zb gibts ja eh schon UDFs mit denen das funktioniert .. slider und progress ist ja mit GDI+ zu bewältigen .. einfach in Photoshop ein zb 1x10 pixel bild machen, und dieses mit GDI+ immer aneinanderhängen..

  • Neee ... Ich find so schauts perfekt aus. Was hast du für ein Design ?
    Hast du Vista oder 7? Weil da siehts wirklich gut aus. Die XP-Controls sind ja immer ein bischen hässlicher ....

  • .. slider und progress ist ja mit GDI+ zu bewältigen .. einfach in Photoshop ein zb 1x10 pixel bild machen, und dieses mit GDI+ immer aneinanderhängen..

    yxyx hat schon ne silder udf gemacht ^^

    Vielleicht Betriebbsystem-abhängig verwenden.

    mfg Ubuntu

  • ich hab se7en und da siehts gut aus...

    Also wenns keine anderen punkte gibt würde ich mich jetzt an die funktionen setzten...

  • Ich hatte noch die Idee einen Tool Tip zu machen wenn man lange auf einem Button bleibt.
    Kann ich bei bedarf gerne einbauen.

    mfg Ubuntu

  • das kann ich ja dann auch machen.

    Also abschließend noch mal vielen Dank für die Hilfe!

  • Ähhm .... Für den ToolTip gibt es doch GUICtrlSetTip ... oder meinst du was anderes ?
    Und die Visualisierung kann ich dir gerne reinmachen, aber dann am besten erst, wenns schon Fertig ist. Also wenn er wenigstens schon etwas abspielen kann, dann ist es leichter zu sehen, was man tut.

  • wenn du mich meinst, ich meine nicht den Tooltip sondern den Visu. (siehe link)

    OK mach ichs soweit schon fertig!

  • So es kann an den visu gehen!

    Spoiler anzeigen
    [autoit]

    #include <Bass.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <ProgressConstants.au3>
    #include <SliderConstants.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <BassConstants.au3>
    #NoTrayIcon

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

    #region Wrapper
    #AutoIt3Wrapper_icon=Pics\Sonstiges\INRico.ico
    #AutoIt3Wrapper_outfile=Kompiliert\INR-Multimediacenter.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Comment=INR-Multimediacenter (C) JuraX 2010 (http://www.jurax.square7.de)
    #AutoIt3Wrapper_Res_Description=INR-Multimediacenter
    #AutoIt3Wrapper_Res_LegalCopyright=JuraX
    #AutoIt3Wrapper_Res_SaveSource=y
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Add_Constants=n
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_Run_Tidy=y
    #endregion Wrapper

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

    #region Globals

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

    Opt("GUICloseOnESC", 0)
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)

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

    Global Const $AC_SRC_ALPHA = 1
    Global Const $APPpfad = @AppDataCommonDir & "\INRadio\"
    Global Const $INR_INI = $APPpfad & "\INRadio.ini"
    Global Const $WM_DROPFILES = 0x0233
    Global $Playingstate = -1
    Global $titelnummer = 0
    Global $oWMP = ObjCreate("WMPLayer.ocx")
    Global $hMusic
    Global $Arraytoplay[1]
    Global $fftstruct = DllStructCreate("float[128]")
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $Hover

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

    $ShowTray = TrayCreateItem("Anzeigen")
    $HideTray = TrayCreateItem("Verstecken")
    $Killtray = TrayCreateItem("Schließen")

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

    #region Bass-Startup
    _BASS_STARTUP(@ScriptDir & "\sys\BASS.dll")
    ;_Bass_Tags_Startup(@ScriptDir & "\sys\BassTags.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    MsgBox(0, "Error", "Konnte Sound nicht Initialisieren!")
    Exit
    EndIf
    #endregion Bass-Startup

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

    #region FirstStart
    $FS = IniRead($INR_INI, "BOOT", "Firtsstart", "")
    Local $FS
    If $FS = "" Then
    ShellExecute("http://creativecommons.org/licenses/by-nc-nd/3.0/de/")
    $iMsgBoxAnswer = MsgBox(262452, "Lizenz", "Mit dem Starten dieses Programmes aktzeptieren sie die Aktuellen Lizenzbedingungen" & @CRLF & @CRLF & "INR jetzt starten?" & @CRLF)
    Select
    Case $iMsgBoxAnswer = 6 ;Yes
    Case $iMsgBoxAnswer = 7 ;No
    FileDelete(@ScriptFullPath)
    Exit
    EndSelect
    DirCreate(@AppDataCommonDir & "\INRadio\")
    DirCreate($APPpfad & "\JSoundextract")
    ShellExecute(@ScriptDir & "\module\Settings.exe")
    IniWrite($INR_INI, "BOOT", "Firtsstart", "False")
    EndIf
    #endregion FirstStart

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

    _GDIPlus_Startup()
    $hNewsImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INR.png")
    $hMusikImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRMusik.png")
    $hRadioImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRRadio.png")
    $hCDPlayerImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRCDPlayer.png")
    $hOptionenImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INROptionen.png")
    $hCreditsImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\INRCredits.png")
    $hForwHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\forwardbuttonhover.png")
    $hForwNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\forwardbuttonnohover.png")
    $hPlayHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\Playbuttonhover.png")
    $hPlayNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\Playbuttonnohover.png")
    $hBackHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\backbuttonhover.png")
    $hBackNoHoverImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Pics\backbuttonnohover.png")

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

    $hAktullesImage = $hNewsImage

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

    $width = _GDIPlus_ImageGetWidth($hMusikImage)
    $height = _GDIPlus_ImageGetHeight($hMusikImage)

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')

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

    #endregion Globals
    #region GUI
    $GUI = GUICreate("INR", $width, $height, -1, -1, BitOR($WS_POPUP, $WS_SYSMENU), $WS_EX_LAYERED)

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

    SetBitmap($GUI, $hAktullesImage, 0)
    GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
    GUISetState()

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

    $WinPos = WinGetPos($GUI)

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

    $ChildGUI = GUICreate("", $width, $height, 0, 0, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_LAYERED), $GUI)
    $hGraphicButtons = _GDIPlus_GraphicsCreateFromHWND($ChildGUI)
    GUICtrlCreatePic(@ScriptDir & "\Pics\grey.gif", 0, 0, $width, $height)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $topplay = GUICtrlCreateLabel("", 110, 53, 41, 54)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $topvor = GUICtrlCreateLabel("", 152, 53, 37, 27)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $topback = GUICtrlCreateLabel("", 152, 81, 37, 27)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    $Button_ = GUICtrlCreateButton("_", 523, 36, 20, 19)
    $ButtonX = GUICtrlCreateButton("X", 543, 36, 20, 19)

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

    $MusikTabLabel = GUICtrlCreateLabel("Musik", 49, 126, 128, 17, $SS_CENTER)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    $RadioTabLabel = GUICtrlCreateLabel("Radio", 49, 126 + 25, 128, 17, $SS_CENTER)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    $CDPlayerTabLabel = GUICtrlCreateLabel("CD-Player", 49, 126 + 50, 128, 17, $SS_CENTER)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    $OptionenTabLabel = GUICtrlCreateLabel("Optionen", 49, 331, 128, 17, $SS_CENTER)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    $CreditsTabLabel = GUICtrlCreateLabel("Credits", 49, 331 + 25, 128, 17, $SS_CENTER)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    GUICtrlCreateTab(0, 0, 10, 10)
    GUICtrlSetState(-1, $GUI_HIDE)

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

    $NewsTab = GUICtrlCreateTabItem("News")
    GUICtrlCreateLabel("Version 3.0" & @CRLF & "Wie ihr sicher gemerkt habt gibt es nun ein neues Design!" & @CRLF & "Dafür nochmal vielen dank an:" & @CRLF & "Tince, Ludwig und Ubuntu, für das Wunderbare Design !", 200, 60, 300, 500)

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

    $MusikTab = GUICtrlCreateTabItem("Musik")
    $LinkerLautsprecher = GUICtrlCreateProgress(200, 60, 20, 80, BitOR($PBS_VERTICAL, $PBS_SMOOTH))
    $RechterLautsprecher = GUICtrlCreateProgress(225, 60, 20, 80, BitOR($PBS_VERTICAL, $PBS_SMOOTH))
    $Graphik = GUICtrlCreateLabel("", 250, 60, 320, 80)
    GUICtrlSetBkColor(-1, 0xCCCCCC)
    $AktuellePositionSlider = GUICtrlCreateSlider(200, 145, 370, 20, $TBS_NOTICKS)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $SchonGespieltZeit = GUICtrlCreateLabel("0:00", 200, 165, 100, 20)
    $GesamtOderBeiKlickNochVerbleibendeZeit = GUICtrlCreateLabel("3:40", 470, 165, 100, 20, $SS_RIGHT)
    $PlaylistListView = GUICtrlCreateListView("Dateiname|Pfad", 200, 185, 350, 165, BitOR($LVS_NOCOLUMNHEADER, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
    $PlaylistAddMP3 = GUICtrlCreateButton("+", 550, 185, 20, 20)
    GUICtrlSetTip(-1, "MP3 zur Playlist hinzufügen")
    $PlaylistAddJSound = GUICtrlCreateButton("+J", 550, 205, 20, 20)
    GUICtrlSetTip(-1, "JSound zur Playlist hinzufügen")
    $PlaylistDelFile = GUICtrlCreateButton("-", 550, 225, 20, 20)
    GUICtrlSetTip(-1, "Datei aus Playlist löschen")
    $PlaylistCreateFromFolder = GUICtrlCreateButton("Playlist aus Ordner einlesen", 200, 352, 150, 20)
    $PlaylistSpeichern = GUICtrlCreateButton("Playlist speichern", 350, 352, 100, 20)
    $PlaylistLaden = GUICtrlCreateButton("Playlist laden", 450, 352, 100, 20)

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

    $RadioTab = GUICtrlCreateTabItem("Radio")

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

    $SenderListView = GUICtrlCreateListView("Sender", 200, 60, 350, 310, BitOR($LVS_NOCOLUMNHEADER, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
    GUICtrlSendMsg($SenderListView, $LVM_SETCOLUMNWIDTH, 0, 350 - 25)

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

    GUICtrlCreateListViewItem("Antenne Bayern", $SenderListView)
    GUICtrlCreateListViewItem("Rock Antenne", $SenderListView)
    GUICtrlCreateListViewItem("Bayern 3", $SenderListView)
    GUICtrlCreateListViewItem("TechnoBase.FM", $SenderListView)

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

    $SenderAdd = GUICtrlCreateButton("+", 550, 60, 20, 20)
    GUICtrlSetTip(-1, "Sender zur Liste hinzufügen")
    $SenderDel = GUICtrlCreateButton("-", 550, 80, 20, 20)
    GUICtrlSetTip(-1, "Sender aus Liste löschen")

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

    $CDPlayerTab = GUICtrlCreateTabItem("CD-Player")
    GUICtrlCreateButton("BLABLA CD-Player", 200, 60, 100, 20)

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

    $OptionenTab = GUICtrlCreateTabItem("Optionen")
    GUICtrlCreateButton("BLABLA Optionen", 200, 60, 100, 20)

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

    $CreditsTab = GUICtrlCreateTabItem("Credits")
    GUICtrlCreateButton("BLABLA Credits", 200, 60, 100, 20)

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

    GUICtrlCreateTabItem("")

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

    _WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, 0)

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

    GUISetState()

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

    For $i = 0 To 255 Step 30
    Sleep(5)
    SetBitmap($GUI, $hAktullesImage, $i)
    _WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, $i)
    Next
    $i = 255
    SetBitmap($GUI, $hAktullesImage, $i)
    _WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, $i)
    #endregion GUI

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

    While (True)
    _GUICtrlListView_SetColumnWidth($PlaylistListView, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($PlaylistListView, 1, 0)
    If $Playingstate = 1 Then
    $song_length = _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE)
    $current = _BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    GUICtrlSetData($AktuellePositionSlider, $percent)
    $levels = _BASS_ChannelGetLevel($hMusic)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    If $current = $song_length Then
    GUICtrlSetData($AktuellePositionSlider, 0)
    _BASS_ChannelPlay($hMusic, True)
    EndIf
    GUICtrlSetData($RechterLautsprecher, $rightChLvlper)
    GUICtrlSetData($LinkerLautsprecher, $leftChLvlper)
    EndIf
    Switch GUIGetMsg($ChildGUI)
    Case $Button_
    WinSetState($GUI, "", @SW_MINIMIZE)
    Case $GUI_EVENT_CLOSE, $ButtonX
    ExitLoop
    Case $PlaylistAddMP3
    $MusikFileHinzufuegen = FileOpenDialog("Öffnen...", "", 'MP3-Dateien (*.mp3)')
    $dateiname = StringSplit($MusikFileHinzufuegen, "\")
    $dateinameOhneMP3 = StringSplit($dateiname[$dateiname[0]], ".")
    GUICtrlCreateListViewItem($dateinameOhneMP3[1] & "|" & $MusikFileHinzufuegen, $PlaylistListView)
    Case $PlaylistDelFile
    _GUICtrlListView_DeleteItemsSelected($PlaylistListView)
    EndSwitch

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

    _CheckHover()
    WEnd

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

    For $i = 255 To 0 Step -30
    Sleep(5)
    SetBitmap($GUI, $hAktullesImage, $i)
    _WinAPI_SetLayeredWindowAttributes($ChildGUI, 0x999999, $i)
    Next

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

    _WinAPI_DeleteObject($hNewsImage)
    _WinAPI_DeleteObject($hMusikImage)
    _WinAPI_DeleteObject($hRadioImage)
    _WinAPI_DeleteObject($hCDPlayerImage)
    _WinAPI_DeleteObject($hOptionenImage)
    _WinAPI_DeleteObject($hCreditsImage)
    _GDIPlus_Shutdown()

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

    #region Funcs :2:
    Func _CheckHover()
    $CurInf = GUIGetCursorInfo($ChildGUI)
    If @error Then Return

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

    If $Hover Then
    If $CurInf[2] Then
    Switch $Hover
    Case $MusikTabLabel
    If $hAktullesImage <> $hMusikImage Then
    $hAktullesImage = $hMusikImage
    GUICtrlSetState($MusikTab, $GUI_SHOW)
    SetBitmap($GUI, $hAktullesImage, 255)
    EndIf
    Case $RadioTabLabel
    If $hAktullesImage <> $hRadioImage Then
    $hAktullesImage = $hRadioImage
    GUICtrlSetState($RadioTab, $GUI_SHOW)
    SetBitmap($GUI, $hAktullesImage, 255)
    EndIf
    Case $CDPlayerTabLabel
    If $hAktullesImage <> $hCDPlayerImage Then
    $hAktullesImage = $hCDPlayerImage
    GUICtrlSetState($CDPlayerTab, $GUI_SHOW)
    SetBitmap($GUI, $hAktullesImage, 255)
    EndIf
    Case $OptionenTabLabel
    If $hAktullesImage <> $hOptionenImage Then
    $hAktullesImage = $hOptionenImage
    GUICtrlSetState($OptionenTab, $GUI_SHOW)
    SetBitmap($GUI, $hAktullesImage, 255)
    EndIf
    Case $CreditsTabLabel
    If $hAktullesImage <> $hCreditsImage Then
    $hAktullesImage = $hCreditsImage
    GUICtrlSetState($CreditsTab, $GUI_SHOW)
    SetBitmap($GUI, $hAktullesImage, 255)
    EndIf
    EndSwitch
    EndIf
    EndIf

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

    If $Hover = $CurInf[4] Then Return

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

    Switch $Hover
    Case $MusikTabLabel, $RadioTabLabel, $CDPlayerTabLabel, $OptionenTabLabel, $CreditsTabLabel
    GUICtrlSetColor($Hover, 0xFFFFFF)
    Case $topplay
    _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayNoHoverImage, 108, 53, 43, 55)
    Case $topvor
    _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hForwNoHoverImage, 152, 53, 37, 27)
    Case $topback
    _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hBackNoHoverImage, 152, 80, 37, 28)
    EndSwitch

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

    $Hover = $CurInf[4]
    Switch $Hover
    Case $MusikTabLabel, $RadioTabLabel, $CDPlayerTabLabel, $OptionenTabLabel, $CreditsTabLabel
    GUICtrlSetColor($Hover, 0xCCCCCC)
    Case $topplay
    _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hPlayHoverImage, 108, 53, 43, 55)
    Case $topvor
    _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hForwHoverImage, 152, 53, 37, 27)
    Case $topback
    _GDIPlus_GraphicsDrawImageRect($hGraphicButtons, $hBackHoverImage, 152, 80, 37, 28)
    EndSwitch
    EndFunc ;==>_CheckHover

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

    Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
    If ($hWnd = $GUI) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
    EndFunc ;==>WM_NCHITTEST

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

    Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

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

    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    EndFunc ;==>SetBitmap

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

    Func WM_DROPFILES_FUNC($hWnd, $MSGID, $WPARAM, $LPARAM)
    Local $NSIZE, $PFILENAME
    Local $NAMT = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $WPARAM, "int", -1, "ptr", 0, "int", 255)
    For $i = 0 To $NAMT[0]
    $NSIZE = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $WPARAM, "int", $i, "ptr", 0, "int", 0)
    $NSIZE = $NSIZE[0] + 1
    $PFILENAME = DllStructCreate("wchar[" & $NSIZE & "]")
    DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $WPARAM, "int", $i, "ptr", DllStructGetPtr($PFILENAME), "int", $NSIZE)
    $FILENAME = DllStructGetData($PFILENAME, 1)
    ConsoleWrite($FILENAME & @CRLF)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = DllStructGetData($PFILENAME, 1)
    $PFILENAME = 0
    Next
    For $i = 0 To UBound($gaDropFiles) - 2
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], ".*\\(.*)\..*", "$1") & "|" & $gaDropFiles[$i], $PlaylistListView)
    Next
    _GUICtrlListView_SetColumnWidth($PlaylistListView, 0, $LVSCW_AUTOSIZE)
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func WM_NOTIFY($hWnd, $MSGID, $WPARAM, $LPARAM)
    Local $TAGNMHDR, $EVENT, $HWNDFROM, $CODE
    $TAGNMHDR = DllStructCreate("int;int;int", $LPARAM)
    If @error Then Return 0
    $CODE = DllStructGetData($TAGNMHDR, 3)
    If $WPARAM = $PlaylistListView And $CODE = -3 And _GUICtrlListView_GetSelectedCount($PlaylistListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($PlaylistListView)
    If _GUICtrlListView_GetItemSelected($PlaylistListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($PlaylistListView, $i)
    _LEFTDBLCLICK()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _LEFTDBLCLICK()
    $titelnummer = 0
    If $Playingstate = 1 Or 2 Then
    _BASS_CHANNELSTOP($hMusic)
    EndIf
    $Playingstate = -1
    $file = $aItem[2]
    $hMusic = _BASS_STREAMCREATEFILE(False, $file, 0, 0, 0)
    _BASS_CHANNELPLAY($hMusic, 0)
    $Playingstate = 1
    EndFunc ;==>_LEFTDBLCLICK
    #endregion Funcs :2:

    [/autoit]