Rechteck auffüllen
-
Ich habe eine Anwendung die abhängig von einem Eingangssignal ein Rechteck grün einfärbt. Damit das Hintergrundbild unter dem Rechteck nicht komplett verschwindet, habe ich den Brush wie folgt definiert:
hBrush = System::Drawing::Color::FromArgb(230, System::Drawing::Color::Green);
Das Eingangssignal wird in einem Timer überprüft und abhängig davon auch der Update des Rechtecks gemacht. Schaltet das Eingangssignal jetzt um, so wird das Rechteck im ersten Durchlauf der Timerroutine mit der definierte Farbe hinterlegt, dann passiert es aber, dass bei jedem weiteren Timerdurchlauf das die Farbe überlagert wird, bis der Hinterfgrund unter dem Rechteck verschwindet.
Weiss jemand eine Lösung zu dem Problem?
-
...habe das nicht korrekt hingeschrieben:
hColor= System::Drawing::Color::FromArgb(230, System::Drawing::Color::Green);
hBrush= gcnew System::Drawing::SolidBrush(hColor);....
-
Merke Dir doch den Zustand des Rechteckes, wenn es bereits grün ist, werden weitere Grünfärbungen unterdrückt.
-
Das habe ich auch schon probiert, aber hat nicht geklappt...das Rechteck wird immer wieder gefüllt....
-
Ich habe mir nun den Zustand des Rechtecks anhand des Eingangssignals gemerkt, damit tritt aber schon das nächste Problem auf und zwar das das Rechteck nicht neugezeichnet wird, solange sich das Eingangssignal nicht verändert...im Fall das ein Fester über meine Applikation überlagert wird, möchte ich das Rechteck wieder neu zeichnen sobald das überlagerte Fenster verschwindet....weiss jemand zufällig eine Lösung...
-
Zeichne das Rechteck im Paint-Ereignis des Controls. Das wird immer aufgerufen sobald Bereiche nachgezeichnet werden müssen.