Rechteck invertierend zeichnen



  • Hallo,
    In C++ und MFC gibt es die elegante Methode pDC->InvertRect(pRec);
    In C# und .Net hab ich nichts Vergleichbares gefunden.
    Hat jemand eine Idee ? 🕶



  • vielleicht gibt es auch eine reine C#/.NET Möglichkeit, aber da ich jetzt keine Zeit habe danach zu suchen, poste ich hier eine WinAPI Umsetzung

    [DllImport("user32.dll", EntryPoint="InvertRect")]
    public static extern int InvertRect(IntPtr hdc, ref Rectangle rect);
    
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    	e.Graphics.FillRectangle(new SolidBrush(Color.Blue), 50, 50, 200, 200); // NUR UM UNTERSCHIED ZU SEHEN
    
    	IntPtr hdc = e.Graphics.GetHdc();
    	Rectangle r = new Rectangle(10, 10, 100, 100);
    	InvertRect(hdc, ref r);
    	e.Graphics.ReleaseHdc(hdc);
    }
    

    und

    using System.Runtime.InteropServices;
    

    nicht vergessen



  • Es läuft !!
    Gruzz mike 👍


Anmelden zum Antworten