SetWindowColor + Box beißen sich?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

SetWindowColor + Box beißen sich?

Beitrag von Delle »

Hallo,

nachdem mit SetWindowColor ein Hintergrund gesetzt wurde, wird die Box z.B. nicht mehr angezeigt.

Muss ich da jz extra einen Callback oder sowas machen? Einzeln aufgerufen werden die beiden Sachen aber doch auch angezeigt?!

Code: Alles auswählen

Width=200
  Height=150
  If OpenWindow(0, 0, 0, Width, Height, "Boxes", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If StartDrawing(WindowOutput(0))
    
    SetWindowColor(0,RGB(64,64,64))
    
    Box(6, 5, 212,62,RGB(255,255,255))
      StopDrawing()
    EndIf
    
    
    
    Repeat : Event = WaitWindowEvent() : Until  Event = #PB_Event_CloseWindow
  EndIf
[/code]
PB 6.21 | Win 11
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Du zeichnest deine Box ja nur am "Anfang", sobalt nun der Fensterinhat zerstört wird (verschieben, minimieren, usw.) ist die Box weg.

Dann solltest du gleich n TextGadget oder so nehmen und deren Hintergundfarbe deinen Bedürfnissen anpassen
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo, die box verschwindet wahrscheinlich beim nächsten redraw der eingestellten hintergrundfarbe.

was willst du denn machen?
wenns dir um ein bischen simple grafik geht, drawe auf ein Image und benutz ein rahmenloses imagegadget.
dann hast du kein problem mit dem redraw, im gegenteil, dann arbeitet es für dich.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

>wenns dir um ein bischen simple grafik geht, drawe auf ein Image und benutz ein rahmenloses imagegadget.

Code: Alles auswählen

CreateImage(1,100,100,32)
StartDrawing(ImageOutput(1))
  Box(0,0,100,100,RGB(255,255,255))
StopDrawing()

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ImageGadget(1,50,50,0,0,ImageID(1),0)
  EndIf
  SetWindowColor(0,RGB(64,64,64))
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten