Flache ButtonImageGadget's

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Flache ButtonImageGadget's

Beitrag von RSBasic »

Hallo,
ich habe eine Frage.
Ich möchte gerne, dass meine ButtonImageGadget's flach sind, aber da es bestimmt nur über WinAPI geht, brauche ich eure Hilfe.
Wie mache ich es, dass meine ButtonImageGadget's flach werden?
Danke für jede Antwort :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ich benutze dafür einfach normale imagegdagets, funktionieren auch, nur die größe des images muss stimmen, da sich die Gadgets ja anpassen.
Einfach das #PB_Event_LeftKlick (oder so) bei EventType() abfragen
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@a14xerus
Danke für deine Speed-Lösung :)
Jo hast Recht, so kann man es auch machen :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Beitrag von Andreas »

Oder so :

Code: Alles auswählen

  If OpenWindow(0, 0, 0, 120, 100, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  If LoadImage(0, #PB_Compiler_Home+"examples\sources\data\file.bmp")    ; ändern Sie den 2. Parameter in den Pfad/Dateinamen Ihres Bildes
      ButtonImageGadget(0, 10, 10, 100, 83, ImageID(0))
      SetWindowLong_(GadgetID(0),#GWL_STYLE,GetWindowLong_(GadgetID(0),#GWL_STYLE)|#BS_FLAT)
    EndIf
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
Gruss Andreas
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Funktioniert aber nicht mit aktivierten Xp-Skins
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Beitrag von Andreas »

Wenn man das "Theme" für den Button abschaltet schon.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 120, 100, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  If LoadImage(0, #PB_Compiler_Home+"examples\sources\data\file.bmp")    ; ändern Sie den 2. Parameter in den Pfad/Dateinamen Ihres Bildes
    ButtonImageGadget(0, 10, 10, 100, 83, ImageID(0))
    SetWindowLong_(GadgetID(0),#GWL_STYLE,GetWindowLong_(GadgetID(0),#GWL_STYLE)|#BS_FLAT)
    If OSVersion() = #PB_OS_Windows_XP
      DLL = OpenLibrary(#PB_Any, "uxtheme.dll")
      CallFunction(DLL, "SetWindowTheme", GadgetID(0), @Null.w, @Null.w)
      CloseLibrary(DLL)
    EndIf
  EndIf
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruss Andreas
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Cool ich wusste gar nicht das das geht, ich bleibe trotzdem bei den Imagegadgets, da kann ich auch den Rand des "Buttons" und die Animation beim drüberfahren selber "bestimmen"
(benutze das im Moment bei den Skins von meinem Player)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Andreas
Vielen Dank für deine Lösung :allright:
Hm...ich weis jetzt noch nicht, was für eine Variante ich wählen soll, entweder die die Idee von a14xerus oder die die von Andreas.
Beide sind gute Wege, aber verschieden :mrgreen:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten