Zeichnen außerhalb der Message-Loop?
-
Hacker schrieb:
2. Da musst du aber mal definitiv mehr Code zeigen. Wir sind keine Wahrsager
Finde ich nicht. Ich hab zwar keine Ahnung von der WinAPI, aber für mich ist die Frage klar und deutlich gestellt. Ich denke die WinAPI Gurus hier haben ebenfalls verstanden.
Hacker schrieb:
3. Hah, Nexus! Nix mit PI vollgespammt.
*spam*
-
@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!