Zeichnung löschen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Zeichnung löschen

Beitrag von Leonhard »

Wie kann ich in diesem Code die alten Kreise löschen lassen?

Code: Alles auswählen

If OpenWindow(0, 0, 0, 220, 150, "Draw-Test")
  Repeat
    event = WaitWindowEvent()
    If Event = #PB_Event_Repaint Or Event = #WM_MOUSEMOVE

      If StartDrawing(WindowOutput(0))
        Circle(10+WindowMouseX(0), 10+WindowMouseY(0), 10, $FF00FF)
        StopDrawing()
      EndIf
    EndIf
  Until Event = #PB_Event_CloseWindow
EndIf

End
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

Code: Alles auswählen

If OpenWindow(0, 0, 0, 220, 150, "Draw-Test")
  Repeat
    event = WaitWindowEvent()
    If Event = #WM_MOUSEMOVE
      InvalidateRect_(WindowID(0), #Null, #True)
    EndIf
    If Event = #PB_Event_Repaint
      StartDrawing(WindowOutput(0))
        Circle(10+WindowMouseX(0), 10+WindowMouseY(0), 10, $FF00FF)
      StopDrawing()
    EndIf
  Until Event = #PB_Event_CloseWindow
EndIf

End 
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Das hier klappt ganz gut:

Code: Alles auswählen

pos.RECT
If OpenWindow(0, 0, 0, 220, 150, "Draw-Test")
  Repeat
    event = WaitWindowEvent()
    If event = #WM_MOUSEMOVE
      InvalidateRect_(WindowID(0), pos, 1)
    EndIf
    If event = #WM_PAINT
      If StartDrawing(WindowOutput(0))
        pos\left = WindowMouseX(0)
        pos\top = WindowMouseY(0)
        pos\right = pos\left + 20
        pos\bottom = pos\top + 20
        Circle(pos\left + 10, pos\top + 10, 10, $FF00FF)
        StopDrawing()
      EndIf
    EndIf
  Until event = #PB_Event_CloseWindow
EndIf
///Edit:
Oh, da war ja jemand schneller. :)
Der Vorteil bei mir ist allerdings, dass nur die Region geupdatet wird, die
auch bemalt wurde.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@NTQ
:allright: echt pfiffig
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten