OnPaint -> Hintergrund "zwischenspeichern"



  • Hallo!

    Ich bin mal wieder dabei meine selbst geschriebene ToolBar ein wnig zu verbessern., da ich mir folgendes aufgefallen ist.

    Ich habe eine Klasse CToolBar erstellt. Diese ist abgeleitet von MFC::CWnd. Das heißt meine ToolBar hat erstmal nichts mit MFC::CToolBar zu tun.

    Das zeichnen der ToolBar erledige ich über OnPaint. Beim MouseOver über einen des Buttons rufe ich eine Methode auf, die nur das aktive Button-Rect zeichnet.

    Nun ist mir aufgefallen, dass bei einem Farbverlauf als ToolBar-Hintergrund der gerade aktive MouseOver Button, sobald ihn die Maus wieder verlässt ja nicht einfach in der Hintergrundfarbe der ToolBar neugezeichnet werden kann, da es sich ja um einen Farbverlauf handelt.

    Meine Frage nun: Gibt es die Möglichkeit einen RECT-Ausschnitt eines Fenster bzw. diesen Teil des DCs zwischenzuspeichern und beim MouseLeave wieder darufzuzeichnen?

    P.S.: Hoffe, dass das halbwegs verständlich ist was ich meine.



  • Ich würde als erstes versuchen über einen seperaten (temporären) DC den gewünchten Ausschnitt zwischen zu speichern. Dann, wenn es gewünscht wird, diese DC wieder einfügen.



  • developer666 schrieb:

    Ich würde als erstes versuchen über einen seperaten (temporären) DC den gewünchten Ausschnitt zwischen zu speichern. Dann, wenn es gewünscht wird, diese DC wieder einfügen.

    Hättest Du hier einen Ansatz für mich?
    Ich weiß nämlich nicht genau ob ich beim temp. DC ein Speicherbitmap erzeugen muss und wenn ja, wie ich dann nur diesen "RECT-Ausschnitt" gespeichert bekomme.


Anmelden zum Antworten