Seite 1 von 2

images & buttons

Verfasst: 14.03.2005 14:59
von sobi
Hallo,

wie ist es möglich, auf (bzw. über) ein Bild ein Button zu setzen, so dass es anzuklicken und sichtbar ist?
Liebe Grüße,

Simon

Hier ein Codeschnipsel wie es nicht funktioniert, aber wo man besser erkennen kann, was ich meine.

Code: Alles auswählen

If OpenWindow(0,0,0,222,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ButtonGadgets")
 
    CreateGadgetList(WindowID(0)) 
      ButtonGadget(1, 10, 10, 200, 20, "Standard Button") 
   
    CreateImage(5,150,200)            
      StartDrawing(ImageOutput())             
      Box(0,0,130,200,RGB(255,255,255))        
    StopDrawing()
    ImageGadget(2,0,0,220,200,UseImage(5)) 

    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow 
EndIf 

Verfasst: 14.03.2005 15:18
von 125
Ungefähr so? :D:

Code: Alles auswählen

-Unten ist nen neuer Code-

Verfasst: 14.03.2005 16:02
von sobi
125 hat geschrieben:Ungefähr so? :D:
ne, nicht das ganze fenster soll anklickbar sein, sondern es soll über dem Bild ein Button sein, den ich anklicken kann. - ein Bild (mit createimage erstellt) und in dem selben bereich ein button (mit bottongadget erstellt)

In dem anderen Beispiel sieht man das m.E. ganz gut. Da ist noch ein bisschen von dem Button zu sehen (dann von dem schwarzen Hintergrund und dann von der weißen Box. - von rechts nach links)

Verfasst: 14.03.2005 16:08
von 125
Also bei mir ist der Button in deinem Beispiel auf dem ImageGadget.
Willst du das Fenster skinnen?
Dann guck dir das hier mal an: http://www.purearea.net/pb/download/use ... _I_021.zip

Verfasst: 14.03.2005 17:59
von sobi
Hi, danke für deinen Ratschlag. Als erstes ne Frage: "was heißt skinnen?"

bei dem Beispiel von dir ist das ganze Bild ein Button. Was ich versuche ist, ein Bild zu zeichnen und darüber dann ein Button (oder ein Eingabefeld, eine Checkbox usw.) zu plazieren.

Verfasst: 14.03.2005 18:01
von 125
Skinnen bedeutet das du deinem Fenster ein Hintergrundbild gibst. Was du ja anscheind mit dem ImageGadget machen willst. In "Allgemein" wurden gerade 2 schöne Beispiele zu Hintergrundbildern gepostet worden. Ansonsten die PureTools dafür verwenden :D

Verfasst: 15.03.2005 00:19
von Helmut
Ich glaube er meint: ein Hintergrund mit einem Bild, darauf ein oder mehrere unterschiedlichsten Gadget oder Button, die werden sicher kleiner als das Hintergrundbild sein.
Ich könnte mir vorstellen das der Visual Designer was für ihn ist.
Da kann man es schön ausprobieren wie sowas aussieht.

Verfasst: 15.03.2005 08:13
von 125
Sobi meinst du das so?:

Code: Alles auswählen

If OpenWindow(0,0,0,222,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ButtonGadgets") 
      CreateImage(5,150,200)            
      StartDrawing(ImageOutput())              
      Box(0,0,130,200,RGB(255,255,255))
      StopDrawing() 
      Brush.LOGBRUSH\lbStyle=#BS_PATTERN 
      Brush\lbColor=#DIB_RGB_COLORS 
      Brush\lbHatch=UseImage(5) 
      SetClassLong_(WindowID(0),#GCL_HBRBACKGROUND,CreateBrushIndirect_(Brush)) 
      InvalidateRect_(WindowID(0), #Null, #True)        
      CreateGadgetList(WindowID(0)) 
      ButtonGadget(1, 10, 10, 200, 20, "Standard Button")
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow 
EndIf

Verfasst: 15.03.2005 12:51
von Kaeru Gaman
@sobi

in PB hab ich damit noch nicht rumexperimentiert,

aber windows-seitig gibt es die möglichkeit,
auch für images ereignisse wie mouseover und click abzufragen.

ich endeffekt ginge es darum, ein image wie ein button aussehen und sich benehmen zu lassen,
und auf den button ganz zu verzichten.

...ausserdem gibt es auch einen image-button...

Verfasst: 15.03.2005 13:35
von MacGyver
Oder so vieleicht ?

fenster :

Code: Alles auswählen

OpenWindow(0,0,0,640,480, #PB_Window_ScreenCentered | #PB_Window_BorderLess,"Test") And CreateGadgetList(WindowID(0)) 
ImageGadget(1,0,0,640,480,UseImage(#Hintergrund),#PB_Image_Border)
;------Knöpfe
buttons :
ButtonImageGadget(#IMG_exit,1,255,107,28,UseImage(#IMG_exit)) 
ButtonImageGadget(#IMG_info,1,185,107,28,UseImage(#IMG_info))
ButtonImageGadget(#IMG_start,1,150,107,28,UseImage(#IMG_start))
ButtonImageGadget(#IMG_menu,1,220,107,28,UseImage(#IMG_menu)) 
ButtonImageGadget(#IMG_page,1,290,107,28,UseImage(#IMG_page))
;------Tastenbelegung
Repeat 
  Select WaitWindowEvent()
    Case  #PB_Event_CloseWindow : gosub aktion
    Case  #PB_Event_Gadget 
      Select EventGadgetID()
        Case #IMG_exit
          Select EventType()
            Case  = #PB_EventType_LeftClick : gosub aktion
          EndSelect
        Case #IMG_start
          Select EventType()
            Case = #PB_EventType_LeftClick : gosub aktion
          EndSelect
        Case #IMG_menu
          Select EventType()
            Case = #PB_EventType_LeftClick : gosub aktion
          EndSelect
        Case #IMG_info
          Select EventType()
            Case = #PB_EventType_LeftClick : gosub aktion
          EndSelect
        Case #IMG_page
          Select EventType()
            Case = #PB_EventType_LeftClick : gosub aktion
          EndSelect 
      EndSelect
  EndSelect
ForEver
Return
Vieleicht aber auch nicht *gggg*