[IN ARBEIT] Neues Design?!?

  • Eigentlich meinte ich mit dem Tooltip Ubuntu ...

    Ich hab leider weder verstanden was du mir sagen willst noch warum ?(

    Ich habe Jura angeboten das einzubauen (wenn der neue Style halbwegs ferig ist).
    Er meinte ja er macht es selber (auch gut ;) )
    Also wieso schreibst du mir jetzt ich soll das mit GUICtrlSetTip machen :huh:

    mfg Ubuntu

    Edit: Und man kann das im falle von Gdi Buttons ja auch gar nicht benutzen. Geht ja nur bei richtigen Controls.

  • Ich wäre euch jetzt noch sehr dankbar wenn sich jmd dem visualisierer annehmen könnte.
    Das Script:

    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 <BassConstants.au3>
    #include <StructureConstants.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #include <JSound.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")
    GUICtrlCreateLabel("Credits:", 224, 92, 114, 28)
    GUICtrlSetFont(-1, 20, 400, 0, "Nasalization")
    GUICtrlCreateLabel("JuraX 2010", 256, 132, 124, 22)
    GUICtrlSetFont(-1, 15, 400, 0, "Nasalization")
    GUICtrlCreateLabel("Alle Rechte Vorbehalten", 256, 164, 283, 22)
    GUICtrlSetFont(-1, 15, 400, 0, "Nasalization")
    $LizenzZeigen = GUICtrlCreateButton("Lizenz", 228, 212, 129, 41, $WS_GROUP)
    GUICtrlSetFont(-1, 20, 400, 0, "Nasalization")

    [/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)
    $leftChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $rightChLvlper = 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)
    Case $PlaylistAddJSound
    $filepath = FileOpenDialog("Öffnen...", "", 'JSound-Dateien (*.JSound)')
    $Filedestination = $APPpfad & "\JSoundextract"
    _JSound_GetFiles($filepath, $Filedestination, @ScriptDir & "\sys\JHelper.dll")
    $JSREK = _GetFilesFolder_Rekursiv($Filedestination & "\", "mp3", 0)
    For $i = 1 To $JSREK[0]
    $dateiname = StringSplit($JSREK[$i], "\")
    $dateinameOhneMP3 = StringSplit($dateiname[$dateiname[0]], ".")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $JSREK[$i], $PlaylistListView)
    Next
    Case $LizenzZeigen
    ShellExecute("http://creativecommons.org/licenses/by-nc-nd/3.0/de/")
    Case $PlaylistCreateFromFolder
    $selectedbib = FileSelectFolder("Ordner Einlesen...", "")
    $returnputin = _GetFilesFolder_Rekursiv($selectedbib, "mp3", 0)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    $dateinameOhneMP3 = StringSplit($dateiname[$dateiname[0]], ".")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $PlaylistListView)
    Next
    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()
    $returnputin = _GetFilesFolder_Rekursiv($APPpfad & "\JSoundextract", "mp3", 0)
    For $i = 1 To $returnputin[0]
    $dateinamedel = FileDelete($returnputin[$i])
    Next
    Exit

    [/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]

    Der Alte Visu:

    Spoiler anzeigen
    [autoit]


    ;==========================================Spektrum-Analysator====================================================
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hgui)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($iX, $iY, $graphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    _GDIPlus_GraphicsClear($backbuffer)
    $pen1_size = 4
    $pen1 = _GDIPlus_PenCreate(0, $pen1_size)
    $pen2_size = 4
    $pen2 = _GDIPlus_PenCreate(0, $pen2_size)
    $pen3_size = 3
    $pen3 = _GDIPlus_PenCreate(0, $pen3_size)
    $fall_speed_l_threshold = 0
    $fall_speed_r_threshold = 0
    $equalizer_width = 24
    $max_l = 0
    $max_r = 0
    $fall_speed = 5
    $fire_up = 15
    $fft_start = 7
    $fft_end = 127
    $fft_boost = 750
    $dy = Int($iY / ($fft_end - $fft_start)) + $pen3_size
    $dyy = Int($iY / $dy / 2)
    $eq = 1

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

    Func DISPLAY_VIS($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, -2131693328)
    If $eq > 0 Then
    $levels = _BASS_CHANNELGETLEVEL($hMusic)
    $LeftChLvl = $leftChLvlper
    $rightChLvl = $rightChLvlper
    If $max_l <= $LeftChLvl Then
    $max_l = $LeftChLvl + $fire_up
    $fall_speed_l_threshold = 20
    Else
    If $fall_speed_l_threshold <= 0 Then
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed
    Else
    $fall_speed_l_threshold -= 1
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed / 3
    EndIf
    EndIf
    If $max_r <= $rightChLvl Then
    $max_r = $rightChLvl + $fire_up
    $fall_speed_r_threshold = 20
    Else
    If $fall_speed_r_threshold <= 0 Then
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed
    Else
    $fall_speed_r_threshold -= 1
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed / 3
    EndIf
    EndIf
    _BASS_CHANNELGETDATA($hMusic, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
    For $i = $fft_start To $fft_end Step $dy
    $FFT = Round(DllStructGetData($fftstruct, 1, $i + 1) * $fft_boost)
    $R = (-(Cos(1.7 * $FFT / 256) + 1) * 0.5) * 256
    $G = ((Cos(4 * $FFT / 256) + 1) * 0.5) * 256
    $B = 0
    _GDIPlus_PenSetColor($pen3, "0xFF" & Hex($R, 2) & Hex($G, 2) & Hex($B, 2))
    _GDIPlus_GraphicsDrawLine($backbuffer, $iX / 5, $i + $dyy, $iX / 5 + $FFT, $i + $dyy, $pen3)
    Next
    EndIf
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, $Width - $iX - 10, 8, $iX, $iY)
    EndFunc ;==>DISPLAY_VIS

    [/autoit]

    2 Mal editiert, zuletzt von JuraX (19. Mai 2010 um 18:46)

  • @Ubuntu:
    Naja du hast angeboten es "einzubauen". Das hört sich so an als wäre es schwer. Dabei ist es mit GUICtrlSetTip nunmal sehr einfach. Und das funktioniert auch bei den GDI+ Buttons, weil die ja auf Labels basieren. Und dann gibt man einfach den Labels den Tooltip. Also ich denke, dass das eigentlich sehr einfach ist ....

    JuraX: Den Visu schau ich mir jetzt mal an... Und kannst du das vllt mal in ein zip oder rar packen? Also deinen ganzen INR-Ordner, weil mir die ganzen Includes fehlen...

  • Ich wär nie drauf gekommen das das schwer ist :rolleyes:
    Ich habs nur angebten da Jura ja glaub ich noch nie vorher was mit Gdi Guis gemacht hat.
    Aber ich muss mir den fertigen Script dann wohl mal genauer angucken denn ich weiss nicht was du mit "auf Labels basieren" meinst.

    mfg Ubuntu

  • Naja ..... Da sind 3 Labels für jeden der Knöpfe eins. Und wenn man über eines dieser Labels geht, wird dahinter mit GDI+ das Hover-Bild gezeichnet.Im Grunde bräuchte man noch nicht einmal GDI+ dafür, da man es auch mit einer GUICtrlCreatePic machen könnte, aber so funtioniert es ja schön und flüssig, was will man mehr ...

  • Ach so.
    Das hat dann aber eher weniger "auf Labels basierenden" buttons zu tun, sondern halt mir Labeln die dahinter liegen ;)

    mfg Ubuntu

  • Klar ... meinetwegen ... nenns wie du willst :D
    Aber auf jeden Fall kann man denen schöne Tooltips geben ... :D

  • Ähm .... Okay Perfekt Danke ... Aber wo soll die DISPLAY_VIS dann aufgerufen werden? In der While oder wo ?

  • Ich habs fertig .... moment ... ich schraub noch n bischen an den Farben ;)
    Soooo ... wird jetzt rosa, wenns hoch geht :P Aber da kannst du ja auch noch rumexperimentieren.
    Und ich habe ziemlich ausgeschlachtet. Da war viel Müll drin.

  • Nice :)
    Fehlt halt noch, dass er dann auch das nächste oder das vorige in der ListView auswählt ... Und ich würde lieber einen Pause als einen Stop-Button haben. Aber das sollte ja net das Problem sein. Könnte man ja einstellbar machen.