Thomas hat geschrieben:
Ok,
wie krieg ich hier die Icons größer und kann trotzdem noch ToolbarStandardButton(...) nutzen?
Ich war jetzt zu faul, mit ResourceHacker die korrekte DLL zu suchen, aber mit der Shell32.Dll würde es so gehen:
Code: Alles auswählen
#TB_SETIMAGELIST = #WM_USER + 48
#TB_GETIMAGELIST = #WM_USER + 49
Procedure MakeLong(LowWord.W, HighWord.W)
ProcedureReturn (LowWord * $10000) | (HighWord & $FFFF)
EndProcedure
If OpenWindow(0, 0, 0, 350, 250, "ToolBar mit großen Standard-Icons", #PB_Window_SystemMenu |#PB_Window_SizeGadget | #PB_Window_ScreenCentered)
hTB = CreateToolBar(0, WindowID(0))
hOldIList = SendMessage_(hTB, #TB_GETIMAGELIST, 0, 0);
hNewIList = ImageList_Duplicate_(hOldIList)
ImageList_Destroy_(hOldIList)
ImageList_SetIconSize_(hNewIList, 32, 32)
SendMessage_(hTB, #TB_SETIMAGELIST, 0, hNewIList)
SendMessage_(hTB, #TB_SETBITMAPSIZE, 0, MakeLong(32,32))
SendMessage_(hTB, #TB_SETBUTTONSIZE, 0, MakeLong(36,36))
SendMessage_(hTB, #TB_AUTOSIZE, 0, 0)
; ----- Icons aus Shell32.dll extrahieren
Shell32Icon0 = ExtractIcon_(0, "Shell32.dll", 42)
Shell32Icon1 = ExtractIcon_(0, "Shell32.dll", 43)
Shell32Icon2 = ExtractIcon_(0, "Shell32.dll", 44)
ToolBarImageButton(0, Shell32Icon0)
ToolBarImageButton(1, Shell32Icon1)
ToolBarImageButton(2, Shell32Icon2)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Menu
Debug "ToolBar ID: "+Str(EventMenu())
EndIf
Until EventID = #PB_Event_CloseWindow
ImageList_Destroy_(hNewIList)
EndIf
Noch einfacher (und mit den Standard-Icons) geht es mit Danilos UserLib ToolBarPro:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 350, 250, "ToolBarPro mit großen Standard-Icons", #PB_Window_SystemMenu |#PB_Window_SizeGadget | #PB_Window_ScreenCentered)
CreateTB(0, WindowID(0), 24, 24, #TBpro_FLAT | #TBpro_BORDER)
AddTBsysIcons()
AddTBbutton(0, #TBpro_FILEOPEN, #TBpro_BUTTON)
AddTBbutton(1, #TBpro_FILESAVE, #TBpro_BUTTON)
AddTBseparator()
AddTBbutton(2, #TBpro_DELETE, #TBpro_BUTTON)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Menu
Debug "ToolBar ID: " + Str(EventMenu())
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf