Seite 1 von 1

SetWindowColor

Verfasst: 25.11.2010 20:10
von Riacon
bei mir verschwindet das rechteck, wenn ich die fensterfarbe ändere. warum?

Code: Alles auswählen

OpenWindow(0,0,0,800,600,"test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)

;SetWindowColor(0, $00FF00);<---------------kommentar entfernen 

StartDrawing(WindowOutput(0))
	Box(100,100,600,400,$FF00FF)
StopDrawing()

Repeat:Until WaitWindowEvent(100)=#PB_Event_CloseWindow
__________________________________________________
Thread verschoben
Grafik & Sound - Programmierung>Anfänger
25.11.2010
RSBasic

Re: SetWindowColor

Verfasst: 25.11.2010 20:22
von Kiffi
Das Rechteck verschwindet auch teilweise, wenn Du das
Fenster zur Hälfte aus dem Bildschirm ziehst und dann
wieder zurückholst.

Abhilfe: Zeichne in ein Image, welches Du dann in einem
ImageGadget darstellst.

Grüße ... Kiffi

Re: SetWindowColor

Verfasst: 25.11.2010 20:31
von RSBasic
Wie Kiffi bereits richtig sagte, ist es sinnvoller, wenn du einen Image erstellst und dieses in einem ImageGadget lädst, da sonst das Fenster neu gezeichnet wird und dadurch deine einmailige Zeichnung verschwindet.

Hier ein Beispielcode:

Code: Alles auswählen

EnableExplicit

Define EventID

CreateImage(1,600,400)

If StartDrawing(ImageOutput(1))
  Box(0,0,600,400,$FF00FF)
  
  StopDrawing()
EndIf

If OpenWindow(0,0,0,800,600,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget)
  ImageGadget(1,100,100,0,0,ImageID(1),0)
  
  SetWindowColor(0,$00FF00)
  
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
  End
EndIf
ForEver
EndIf

Re: SetWindowColor

Verfasst: 25.11.2010 20:45
von ts-soft
Oder:

Code: Alles auswählen

OpenWindow(0,0,0,800,600,"test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)

SetWindowColor(0, $00FF00);<---------------kommentar entfernen

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_Repaint
      StartDrawing(WindowOutput(0))
         Box(100,100,600,400,$FF00FF)
      StopDrawing()
  EndSelect
ForEver