icon aus dll in toolbar einbinden

  • Hi @all

    Ich habe mir den theared angesehen indem bitmaps aus einer dll hinzugefügt werden von nuts.
    Mein Problem ist aber das in meiner eigenen dll icons mit der id 1-4 enthalten sind und keine bmps

    Ich habe schon mal _WinAPI_LoadLibary verwendet und habs erst auch so probiert aber mit _GUICtrlToolBar_Create geht es nicht

    [autoit]


    $hLibary = _WinAPI_LoadLibrary($Libary)
    $hToolbar = _GUICtrlToolbar_Create ($Form1)
    _GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $STD_REPLACE, $STD_REPLACE)
    _GUICtrlToolbar_AddBitmap($hToolbar, 1,$hLibary,1)

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

    _GUICtrlToolbar_AddButton ($hToolbar, $idHelp, $STD_HELP)
    _GUICtrlToolbar_AddButton($hToolbar,1,1000)

    [/autoit]

    Ich hoffe jemand kann mir sagen welche funktion ich staddessen für _GUICtrlToolBar_AddBitmap benötige

  • Hey,


    du erstellst dir eine Imagelist aus der .dll

    [autoit]

    $hImage = _GUIImageList_Create()
    $count = _WinAPI_ExtractIconEx("Pfad zur .dll", -1, 0, 0, 0)
    for $i = 0 to $count -1
    _GUIImageList_AddIcon($hImage, "Pfad zur .dll", $i)
    next

    [/autoit]

    Dazu kommt: _GUICtrlToolbar_SetImageList und die jeweilige zuordnung zum Toolbarbutton.
    Sollte es nicht hinhauen kann ich auch ein Beispiel machen.

  • Mein Code:

    Spoiler anzeigen
    [autoit]

    $hImage = _GUIImageList_Create()
    $count = _WinAPI_ExtractIconEx($hLibary, -1, 0, 0, 0)
    for $i = 1 to $count
    _GUIImageList_AddIcon($hImage,$hLibary, $i)
    next
    $hToolbar = _GUICtrlToolbar_Create ($Form1)
    _GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar,1,1000)
    _GUICtrlToolbar_SetImageList($hToolbar,$hImage)
    _GUICtrlToolbar_AddButton ($hToolbar, $idHelp, $STD_HELP)

    [/autoit]

    $hLibary = Handel des _GUICtrlAPI_LoadLibary

    Das $idHelp soll bleiben aber der button darüber soll das 1. Icon aus der Dll bekommen
    Damit habe ich aber ein Problem da es nicht funktioniert es wird bei meinem code nähmlich gar nichts mehr angezeigt nicht einmal mehr das $idHelp Image

    Danke für bisherige Antworten und kommende

  • Ein eigenes Icon in der Toolbar geht so:

    Spoiler anzeigen
    [autoit]


    #include <GuiToolbar.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <WinAPI.au3>
    #include <GuiImageList.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 $hlibary = @ScriptDir &"\fertig.dll" ;der Pfad zu deiner .dll
    Global $hToolbar, $iMemo
    Global $iItem ; Command identifier of the button associated with the notification.
    Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp

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

    _Main()

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

    Func _Main()
    Local $hGUI, $aSize, $hImage, $count
    local $test = 2000
    ; Create GUI
    $hGUI = GUICreate("Toolbar", 600, 400)
    $hToolbar = _GUICtrlToolbar_Create ($hGUI)
    $hImage = _GUIImageList_Create()
    $count = _WinAPI_ExtractIconEx($hlibary, -1, 0, 0, 0)

    for $i = 0 to $count -1
    _GUIImageList_AddIcon($hImage, $hlibary, $i)
    next
    _GUICtrlToolbar_SetImageList($hToolbar, $hImage)

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

    GUISetState()

    [/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)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idOpen, $STD_FILEOPEN)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idSave, $STD_FILESAVE)
    ;_GUICtrlToolbar_AddButtonSep ($hToolbar)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idHelp, $STD_HELP)
    ;_GUICtrlToolbar_AddButtonSep ($hToolbar)
    _GUICtrlToolbar_AddButton ($hToolbar, $test, 0)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    EndFunc ;==>_Main

    [/autoit]


    Dabei wird ja die Imagelist umgebogen, d.h die Standardicons müssen da auch noch rein.

  • Dabnke und wie kann ich es in der toolbar vergrößern da mein icon normal viel größer ist aber in der toolbar winzig
    normal ist es aber auch transparent in der toolbar aber mit schwarzem hintergrund
    wie kann ich es ändern