Alte MFC Anwendung auf GDI+ umstellen



  • Hallo,
    ich pflege eine alte MFC Anwendung. Bin eigentlich aber in einer anderen Programmiersprache zu Hause (Delphi).

    Das Programm hat eine Zeichenfläche in der Figuren aus einer Punkteliste gezeichnet werden. Die Punkte haben die Eigenschaften X,Y,R,G,B und Blank. Blank heisst "unsichtbar zeichnen". Da sind die Linien dann Grau statt Punktfarbe.
    Gezeichnet wird dann im Fall Punkt ist blanked mit MoveTo, ansonsten mit LineTo und Punktfarbe.

    Problem: Es gibt einen Grund warum z.B. ein Kreis nicht 360 Grad hat sondern davor und
    danach ein paar Blankpunkte. Zeichne ich diese Figur starte ich mit z.B. vor "Vorabpunkten" die natürlich auch auf der Kreisbahn liegen, dann die 360 Grad eigentlichen Kreispunkte und dann noch mal "Danachpunkte". Die "Danachpunkte" in Grau überzeichnen natürlich den Kreis in der Wunschfarbe mit grauen Vectoren. Das sieht leider scheusslich aus. In Delphi gibts für den Pen die Eigenschaft "PMMerge" wo dann die Penfarbe mit der schon vorhandenen gemischt wird. Von den Penstyles die ich in der MFC finde kann das keine.

    Kennt da jemand eine Lösung oder muss ich auf GDI+ umstellen ?
    Oder wäre das überhaupt eine Lösung ?

    Danke und Gruss
    Calli



  • Die zu TPenMode äquivalente Liste findet man in der WinAPI-Doku z.B. in BitBlt (s. unter "Parameters: [in] rop").
    Dies nennt sich "Raster Operation" (ROP).

    Mit MFC kannst du dafür die Funktion CDC::SetROP2 benutzen.


Log in to reply