Programm beim Bewegen des Fensters fortsetzen



  • Ich habe gerade ein Problem damit, dass ein von mir erstelltes Fenster beim Ziehen (also Anklicken der Leiste oben und über den Bildschirm ziehen) scheinbar alle Aktionen "pausiert". Da in dem Fenster ein Spiel laufen soll, das multiplayerfähig und somit stets auf Synchronität angewiesen ist, würde ich diesen Effekt gern eliminieren.
    Hat dazu jemand eine Lösung? Bei den Fenster-Attributen in MSDN habe ich nichts dazu gefunden.



  • wincl.style = CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW;
    

    Also bei der Fensterklasse dei dem Member style

    CS_HREDRAW
    

    und

    CS_VREDRAW
    

    setzten



  • Danke schonmal für diesen Tipp, ich hatte gedacht, sowas würde ich erst bei CreateWindow() einstellen.
    Den Zweck erfüllt das jetzt leider noch nicht, scheinbar wird das im Fenster laufende Programm während des Ziehens nicht so ausgeführt, wie es das eigentlich sollte.

    Falls das von Bedeutung ist: Im Fenster läuft ein wenig OpenGL-Rendering ab. Während des Spiels sende ich in regelmäßigen Abständen Daten vom Server zum Clienten - wenn aber einer von beiden sein Fenster verschiebt, dann scheint die eigentliche Programmfunktion währenddessen zu stehen, sodass keine Daten gesendet oder empfangen werden. Mangels Erfahrung kann ich dieses Problem momentan nicht abfangen, die einfachste Lösung wäre daher, dass ich das Fenster verschieben kann, ohne dass deshalb das Spiel pausiert wird.



  • leider hab ich keine ahnung von OpenGL als dass ich das Prblem lösen könnte



  • Ich dachte nicht, dass es an OpenGL läge. Ich habe mal den Thread-Titel angepasst, evt. trifft das eher den Kern der Sache.



  • Die Spielschleifen in einen anderen Thread setzen. Also nicht in den (vermutlich Hauptthread) mit "while PeekMessage"...
    Ob es das redraw-Problem löst, weiß ich aber nicht.



  • Das PeekMessage() hält also das Spiel für diese Zeit an? Deine Vermutung stimmt soweit, allerdings habe ich keine Ahnung von Threads. Damit will ich mich vorläufig nur befassen, wenn es unumgänglich ist.


Anmelden zum Antworten