Zeichnen außerhalb der Message-Loop?
-
@Hacker:
Ad 1: richtig
Ad 2: falsch
Ad 3: Klappe halten@Taeli
OMG die Frage kann nicht ernst gemeint sein.Das
BeginPaint/EndPaint
muss natürlich aus der Funktion raus wenn du sie auch ausserhalb vonWM_PAINT
verwenden willst.Lies bitte die Doku zu
WM_PAINT
undBeginPaint
. Und bevor du fragst: ergoogle dir die Doku bitte selbst. Tip: wenn die URL "msdn" enthält bist du auf dem richtigen Weg.
-
hustbaer macht mal wieder einen auf aggressiv, weil er im wahren Leben keine Anerkennung bekommt.
-
back bone schrieb:
hustbaer macht mal wieder einen auf aggressiv, weil er im wahren Leben keine Anerkennung bekommt.
Arrrgghhh, ich gerate stark in die Versuchung irgendeinen blöden Spruch zu erfinden... gggnnnn...
Zum Punkt 2: Das ist jetzt Blöd. Ich hab natürlich *keine* Ahnung von der WinAPI, dass die Frage mit 10 Zeilen Code so beantwortet werden kann wusst' ich nicht.
-
hustbaer schrieb:
Das
BeginPaint/EndPaint
muss natürlich aus der Funktion raus wenn du sie auch ausserhalb vonWM_PAINT
verwenden willst.Ich hatte es eher so verstanden:
case WM_TIMER: InvalidateRect(hwnd, NULL, true); break; case WM_PAINT: Paint(hwnd); break;
Und dann eben bei WM_CREATE oder so SetTimer aufrufen.
-
Zuerst wär imo überhaupt mal interessant, wieso genau du eigentlich nicht in WM_PAINT zeichnen kannst!?
-
HWG schrieb:
hustbaer schrieb:
Das
BeginPaint/EndPaint
muss natürlich aus der Funktion raus wenn du sie auch ausserhalb vonWM_PAINT
verwenden willst.Ich hatte es eher so verstanden:
case WM_TIMER: InvalidateRect(hwnd, NULL, true); break; case WM_PAINT: Paint(hwnd); break;
Oh boy...
Und dann eben bei WM_CREATE oder so SetTimer aufrufen.Das
BeginPaint/EndPaint
muss natürlich aus der Funktion raus wenn er sie auch ausserhalb vonWM_PAINT
verwenden will.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Es gibt kein "Zeichen" außerhalb von WM_PAINT, Punkt(1).
Wenn man glaubt, dass man das braucht, hat man ein falsches Konzept und die Windows API/UI nicht verstanden. Punkt(2)...
-
Martin Richter schrieb:
Es gibt kein "Zeichen" außerhalb von WM_PAINT, Punkt(1).
Wenn man glaubt, dass man das braucht, hat man ein falsches Konzept und die Windows API/UI nicht verstanden. Punkt(2)...
Huch? Natürlich gibts das. Die Frage ist nur ob und wann man das braucht...
Ich glaube der Threadersteller sollte einfach mal das lesen: http://msdn.microsoft.com/en-us/library/dd183315.aspx
-
HWG schrieb:
hustbaer schrieb:
Das
BeginPaint/EndPaint
muss natürlich aus der Funktion raus wenn du sie auch ausserhalb vonWM_PAINT
verwenden willst.Ich hatte es eher so verstanden:
case WM_TIMER: InvalidateRect(hwnd, NULL, true); break; case WM_PAINT: Paint(hwnd); break;
Und dann eben bei WM_CREATE oder so SetTimer aufrufen.
Super, mit SetTimer() und InvalidateRect() klappt es! Danke!