Anzeigefehler bei GDI+



  • Hallo zusammen,

    ich arbeite mit der MFC und zeichne auf einem DeviceContext eines CStatic. Mittels

    CDC * dc = m_ctlPicBox.GetDC();
    HDC hdc = *dc;
    

    hole ich mir diesen und übergebe den Pointer an eine Zeichenmethode. Diese zeichnet direkt darauf ein Formular. Allerdings wird dabei rechts unten ein Bereich ausgelassen. Invalidate, neu Zeichnen etc. bringt allesamt nichts. Interessant war aber zu sehen, dass der Bereich sich erweitert, wenn ich das Fenster ein Stückchen nach oben und rechts verschiebe, so als würde ein Teil des Fensters selbst irgendwie über der Zeichnung liegen und das Zeichnen unterdrücken. Zu sehen ist das hier:
    http://imgur.com/a/ABHE5

    Hat da schon jemand was ähnliches gehabt und kann mir sagen, was mein Fehler bei der ganzen Sache sein könnte?

    Grüße
    Ben


  • Mod

    zeichnet das CStatic auch etwas?



  • kann es sein dass sich das Control selbst zeichnet und quasi deine Zeichnung überschreibt?
    Bei MFC kannst du ja vom Control ableiten und die OnPaint Methode überschreiben - probier dort mal deine Zeichenroutine aufzurufen.



  • Mea culpa... War wohl selber doof. Ich hatte bereits ein abgeleitetes Control (eben kein CStatic, sondern davon abgeleitet), welches in seiner Paint-Methode natürlich in mein Formular reingemalt hatte. Mit einem CStatic funktioniert alles wie es soll. Dennoch wäre ich ohne die Antworten nicht auf den Fehler gekommen, ein herzliches Danke dafür 😉


Log in to reply