Darauf wirds wohl hinauslaufen. Außerdem habe ich grad' bemerkt das dein Code zwar mit #BS_ICON auf XP funktioniert aber der Button im Classic Look dargestellt wird. Ich kenne dieses Problem noch sehr gut von früheren PB Versionen aber mich würde interessieren wie's Fred gelöst hat.Eine Lösung fuer alle Versionen waere dann wohl wirklich selber,
ueber wm_paint, zu malen.
Icon in ButtonTextGadget
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Windows 10 Pro, 64-Bit / Outtakes | Derek
Indem er #BS_BITMAP statt #BS_Icon benutzt.
Ne spaß ka.
Also ich habe hier mal ein wenig API zusammengekodet und bei mir (Windows XP) tut es einwandfrei.
Ne spaß ka.
Also ich habe hier mal ein wenig API zusammengekodet und bei mir (Windows XP) tut es einwandfrei.
Code: Alles auswählen
#BCM_FIRST = $1600
#BCM_SETIMAGELIST = #BCM_FIRST + 2
#BUTTON_IMAGELIST_ALIGN_LEFT = 0
#Window = 1
#Button = 1
#Icon=1
Structure _BUTTON_IMAGELIST
himl.l
margin.RECT
uAlign.l
EndStructure
;on my Computer the PB Version creates a compiler error.
OpenLibrary(1,"comctl32.dll")
Prototype ImageList_AddIcon(List,Icon)
Global ImageList_AddIcon.ImageList_AddIcon
ImageList_AddIcon=GetFunction(1,"ImageList_AddIcon")
Procedure AddIconToButton(ButtonID,IconID,w=16,h=16)
Protected buttonImgList._BUTTON_IMAGELIST
himlIcons = ImageList_Create_(w,h, #ILC_MASK |#ILC_COLOR32, 1, 0)
ImageList_AddIcon(himlIcons, IconID)
With buttonImgList
\uAlign = #BUTTON_IMAGELIST_ALIGN_LEFT
\margin\top = 3
\margin\bottom = 3
\margin\left = 3
\margin\right = 3
\himl = himlIcons
EndWith
SendMessage_(ButtonID, #BCM_SETIMAGELIST, 0, buttonImgList)
EndProcedure
InitCommonControls_()
If OpenWindow(#Window, 100, 100, 250, 200, "Icon Button by Konne", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(#Window))
ButtonGadget(#Button, 75, 50, 120, 42, "Run Program", #PB_Button_Left)
;LoadImage(#Icon,"Icon.ico")
AddIconToButton(GadgetID(#Button),LoadIcon_(0,#IDI_APPLICATION),32,32);ImageID(#Icon),32,32)
Repeat : Until WaitWindowEvent()= #PB_Event_CloseWindow
EndIf
Warum schreibst du extra nen Teil, wo du ImageList_AddIcon einlädst, wo du ImageList_AddIcon_ schreiben kannst?Konne hat geschrieben:Code: Alles auswählen
[...] ;on my Computer the PB Version creates a compiler error. OpenLibrary(1,"comctl32.dll") Prototype ImageList_AddIcon(List,Icon) Global ImageList_AddIcon.ImageList_AddIcon ImageList_AddIcon=GetFunction(1,"ImageList_AddIcon") [...]
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Warum schreibst du extra nen Teil, wo du ImageList_AddIcon einlädst, wo du ImageList_AddIcon_ schreiben kannst?
Weil er Prototypes anzuwenden weiß
Weil er Prototypes anzuwenden weiß

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Achso ist das gemeint, bei mir funzt es auch mit _ 

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

TOP
Sehe ich das richtig das es erst mit XP und eingeschaltenden XP-Style funktioniert?
FF

Sehe ich das richtig das es erst mit XP und eingeschaltenden XP-Style funktioniert?
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Sehe ich das richtig das es erst mit XP und eingeschaltenden XP-Style funktioniert?
Jetzt hab ich es auch gemerkt
Jetzt hab ich es auch gemerkt

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
