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

![]() |
klinBetreff: [GUI]Canvas Rückstände beim verschieben verhindern |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group