ich fuchse mich gerade etwas in die Grafik-Befehle von PureBasic hinein und bin nun schon zu Beginn auf ein seltsames Verhalten gestoßen, welches ich nicht deuten kann. Vielleicht kann mir ja einer von euch etwas "Starthilfe" geben. Beim Anlegen großer "Windowed Screens", welche (fast) den gesamten Desktop einnehmen, zeigt meine Maus ein seltsames Verhalten. Sobald ich die Maus über das obere Drittel des Screen-Fensters bewege, verschwindet diese. Fahre ich aus diesem Bereich des Fenster heraus, in das zweite Drittel des Fensters, so taucht sie wieder auf. Bisher habe ich keinen Fehler im Quellcode gefunden und kann mir dieses seltsame und extrem störende Verhalten nicht erklären.
Hier einmal der Code, den ich zum Testen verwendet habe und bei dem dieser Fehler (auf meinem Rechner) auftaucht:
Code: Alles auswählen
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Sprite system can't be initialized", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Sprite3D system can't be initialized correctly", 0)
End
EndIf
; - Desktop untersuchen
ExamineDesktops()
; - Fenster öffnen
hWnd = OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0) - 30, "Sprite3D", #PB_Window_BorderLess)
; - einen Screen im Fenster öffnen
If hWnd <> 0 And OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)
; - Hauptschleife
Repeat
; - normale Fenster-Ereignisse abfragen
Repeat
; - letztes Ereignis
Event = WindowEvent()
; - wenn letztes Ereignis ...
Select Event
; - wenn Taste losgelassen
Case #WM_KEYUP
; - wenn ESCAPE gedrückt wurde
If EventwParam() = #VK_ESCAPE
; - Statusvariable setzen: Programm beenden
TerminateProgram = #True
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
Until (Event = 0 Or TerminateProgram = #True)
; - Buffer vertauschen und auf dem Hintergrund-Buffer zeichnen
FlipBuffers()
; - Screen leeren, d.h. mit schwarz überzeichnen
ClearScreen(RGB(0, 0, 0))
; - eine Millisekunde warten
Delay(1)
Until TerminateProgram = #True
EndIf
End
Vielen Dank schoneinmal!
Grüße,
Christian