SetWindowColor

Anfängerfragen zum Programmieren mit PureBasic.
Riacon
Beiträge: 61
Registriert: 21.01.2008 09:40

SetWindowColor

Beitrag 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
pb 4.51 win7 64
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SetWindowColor

Beitrag 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
a²+b²=mc²
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SetWindowColor

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SetWindowColor

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten