[GUI]Canvas Rückstände beim verschieben verhindern

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

klin

Betreff: [GUI]Canvas Rückstände beim verschieben verhindern

BeitragDo, Feb 17, 2011 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,
ich habe da ein kleines Problem. Und zwar, wenn ich ein anderes Fenster über mein Fenster mit Canvas verschiebe, tauchen aufeinmal Rückstände von dem anderen Fenster auf. Normal Update ich das Canvas beim MouseOver. Leider reicht das anscheinend nicht... Als ich mir mal die anderen Applikationen mit einer eigenen GUI angeschaut hatte, fiehl mir auf, dass diese schnell wieder neu rendern und auch die CPU ein wenig hochtreiben. Also müsste es rein theoretisch einen WINAPI befehl oder sowas geben. Oder hat da auch jemand eine andere Ahnung?

Vielen Dank.
MFG
Klin

EDIT: Wenn ich ja schon dabei bin, weiß jemand wie ich das Canvas updaten kann, auch wenn das Fenster verschoben wird? Weil sobald ich das Fenster verschiebe, hängt die komplette Appliaktion. Danke.

Thunder

BeitragDo, Feb 17, 2011 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Update das Canvas doch einfach, wenn das Fenster verschoben oder aktiviert oder skaliert ... wird. Das braucht nicht viel Performance.

Zu dem Edit: Wenn das ganze Programm hängt, wird das Canvas nichts damit zu tun haben.

Wenn doch, poste bitte einen Beispielcode.

mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

klin

BeitragDo, Feb 17, 2011 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich glaube du hast meine Frage nicht ganz verstanden. Ich hatte dort beschrieben "wenn ich ein anderes Fenster über mein Fenster mit Canvas verschiebe".

Zum Edit meinte ich damit auch, dass dort die Applikation gemütlich weiterlaufen soll. Aber während des verschieben des Fensters wird rein garnichtsmehr aktualisiert. (kennt man auch von Graphics)

EDIT: Man kann auch das Beispiel code von Canvas verwenden. Das selbse resultat bei dem verschieben. Nur das meine App nicht jedesmal sich aktualisiert, sondern nur bei bestimmten Aktionen.

THX
MFG
Klin

ZaP

BeitragDo, Feb 17, 2011 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
In der Hilfe steht An EVENT_GADGETPAINT event is generated whenever the gadget must be redrawn by either the system (for instance when it is first shown) or due to the RedrawGadget command.. Vielleicht hilft das ja?
Starfare: Worklog, Website (download)
 

jsp

BeitragFr, Feb 18, 2011 0:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie Zap schon angedeutet hat ist der EVENT_GADGETPAINT wichtig.

Um das Canvas updaten zu können während etwas darauf bewegt wird, benötigt man ausserdem eine Hook function (im Gegensatz zu einer WaitEvent() Schleife)!

In der Funktion kann man dann verschiedene Events abfragen auf die sofort reagiert werden soll.

Z.B.
EVENT_WINDOWSIZE - man möchte sofort die Größe des Canvas anpassen wenn das Fenster mit der Maus verändert wurde.

EVENT_WINDOWMOVE - man möchte sofort das Canvas updaten wenn ein Fenster oben drauf bewegt wurde.

Event_APPRESUME - man möchte das Fenster/Canvas updaten wenn es wieder aktiviert wurde.
Logic Gui Professional a Gui Designer for MaxGui

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group