PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tricky: Bekomme keinen Paint event?


nop
2006-03-04, 18:15:14
Ich bin bisher davon ausgegangen, dass die eigene App bzw. Control-Form (C#) ihren Bereich IMMER selbst zeichnet, wenn jemand anderes (andere Control-Form oder App) irgendwas drüber zeichnet. Nun scheint Windows gelegentlich den zu überdeckenden Bereich vorher einzulesen, malt dann sein Zeug (z.B. Tooltips) drüber und restauriert ihn dann selbstständig. Problem ist: Der zurückgeschriebene Bildinhalt ist nicht mehr aktuell und ich habe Dreck herumliegen. Davon weiss ich jedoch nichts, da kein Paint event an mich geschickt wird, der mich dazu auffordern würde, den Bereich neu zu zeichnen. Wichtig wäre vielleicht noch zu erwähnen, dass mein Bereich ein OpenGL-Fenster ist, d.h. es gibt kein Windows-Element ausser einer LEEREN UserControlForm.

nop
2006-03-04, 20:33:02
public bool rant =true;

Das Problem scheint nicht auf ATI-Hardware aufzutreten, sondern nur auf Nvidia (auch bei fremden Anwendungen). Überhaupt macht der NVidia 2D-Treiber den Eindruck als hätten ihn 8-Jährige in Heimarbeit im Rahmen des Programmierer-Förderwettbewerbs für Minderbegabte geschrieben. Seit Jahren wird nur der Video- und Spieleteil gefixt während der 2D-Schrott von Treiberversion zu Treiberversion mitgeschleppt wird:

- Control-Panel in Taskbar verabschiedet sich unmotiviert.
- Taskbar verkommt gelegentlich zur Zackbar (blockige Fransen)
- Desktop-Icons entwickeln ihre eigenen visuellen Design-Vorstellungen.
- Wenn Anwendungen Transparenzen benutzen, dann rennt der Treiber in die Ecke und schämt sich.
- Kommt dann noch ein 3D-Fenster dazu, wird die Ecke zugekotzt. Der Desktop sieht dann aus als hätte man einen Party-Salat auf den Monitor geworfen.

public bool rant =false;

Mit dem Problem im Start-Posting habe ich bereits Wochen verschwendet (MDI-Parent aufspüren und den Paint-Event weiterleiten, unmotiviertes und verzögertes Invalidate() mittels Sleeper-Thread nach User-Interaktion sowie ca. tausend andere Hacks, die nichts bringen).