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