Zwingt windows den gesamten Bildschirm neu zeichnen
Ich bin derzeit auf der Zeichnung, Grafik mit GDI, aber ich muss in der Lage sein, neu zu zeichnen den gesamten desktop/Bildschirm. Meine Grafiken sind auf dem Bildschirm gezeichnet, aber wenn ich mich bewegen würde, einen gezeichneten pixel, es würde eine Linie geworden, weil ich mich nicht Neuzeichnen des Bildschirms ( auch windows nicht ). Ich brauche etwas zu zwingen, es neu zu zeichnen, den gesamten Bildschirm, ich habe versucht, die folgenden Ansätze:
UpdateWindow(GetDesktopWindow() );
InvalidateRect( GetDesktopWindow(), NULL, TRUE );
SendMessage( GetDesktopWindow(), WM_PAINT, NULL, NULL );
Keiner von Ihnen scheinen zu arbeiten, brauche ich nur den gesamten Bildschirm neu zu zeichnen.
- Warum tust du all diese Dinge auf dem desktop-Fenster statt Ihre eigenen Fenster? Das desktop-Fenster ist die Sache, die zeigt Ihre Tapete und alle anderen Fenster auf dem oben drauf...
- Weil ich nicht meine eigenen Fenster, und ich weiß, was es tut. Ich bin zeichnen auf dem desktop mit dem desktop-handle.
- Warum nicht erstellen Sie ein Vollbild transparente Fenster?
- Ich werde es anschauen, aber ich wollte, dass es ohne ein Formular/Fenster.
- Bitte sagen Sie mir, welche Anwendung Sie gerade arbeiten, so dass ich es vermeiden kann in Zukunft. Zeichnen Sie auf ein Fenster, die Sie nicht besitzen, ist nur ärger bringen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie immer noch wollen, zu zwingen gesamten desktop neu lackiert werden, können Sie
RDW_ERASENOW
stattRDW_ERASE
undNULL
statt::GetDesktopWindow()
es funktioniert!Der beste Weg sein könnte, um zu speichern Sie das Vorherige pixel Staat/Farbe und wiederherstellen, wenn Sie bewegen Sie die pixel. Neuzeichnen des ganzen Bildschirms scheint wie zu viel Aufwand und ein schrecklich Verschwendung von Ressourcen.
Können Sie RedrawWindow mit hWnd auf NULL gesetzt.