Seite 1 von 1

ButtonImageGadget transparent machen

Verfasst: 26.11.2013 19:01
von enigma
Hallo,
ist es möglich ein ButtonImageGadget transparent zu machen so das nur das Image sichtbar ist?
Es würde mir auch reichen wenn das Gadget randlos wäre.

Gruß
Enigma

Re: ButtonImageGadget transparent machen

Verfasst: 26.11.2013 19:05
von ts-soft
Warum nimmste dafür nicht einfach ein CanvasGadget?

Re: ButtonImageGadget transparent machen

Verfasst: 26.11.2013 20:08
von RSBasic

Code: Alles auswählen

EnableExplicit

Define EventID

CreateImage(1, 50, 50, 24, RGB(100, 200, 255))

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonImageGadget(1, 50, 50, 60, 60, ImageID(1), #BS_OWNERDRAW)
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          Debug "Klick"
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: ButtonImageGadget transparent machen

Verfasst: 27.11.2013 08:01
von enigma
Besten Dank!

@ts-soft
zur Not wäre das eine Lösung gewesen, aber der rahmenlose Button gefällt mir besser.

@RSBasic
woher weiß man sowas wie "#BS_OWNERDRAW"?

Gruß
Enigma

Re: ButtonImageGadget transparent machen

Verfasst: 27.11.2013 10:40
von RSBasic
@enigma
#BS_OWNERDRAW ist eine WinAPI-Konstante.
ButtonImageGadget() ist bei WinAPI ein ganz normaler Button und da gibt es Styles, die du verwenden kannst: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Auf der von mir verlinkten Seite gibt es auch eine Beschreibung zu BS_OWNERDRAW. Damit kannst du einen eigenen Button erstellen ohne Standard-Style (kein Rahmen und kein Hintergrund) des Buttons.
Das bedeutet aber auch, dass deine Anwendung ausschließlich unter Windows läuft, wenn du WinAPI-Konstanten/-Funktionen/-Strukturen verwendest.

Re: ButtonImageGadget transparent machen

Verfasst: 28.11.2013 10:44
von enigma
@RSBasic
Danke für den Super-Link!

Gruß
Enigma