Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Subclass NativeWindow

using System; using System.Drawing; using System.Windows.Forms;     class CaptureLoss: Form {      public static void Main()      {           Application.Run(new CaptureLoss());      }      public CaptureLoss()      {           Text = "Capture Loss";               CaptureLossWindow win = new CaptureLossWindow();           win.form = this;           win.AssignHandle(Handle);      }      protected override void OnMouseDown(MouseEventArgs mea)      {           Invalidate();      }      public void OnLostCapture()      {           Invalidate();      }      protected override void OnPaint(PaintEventArgs pea)      {           Graphics grfx = pea.Graphics;               if (Capture)                grfx.FillRectangle(Brushes.Red, ClientRectangle);           else                grfx.FillRectangle(Brushes.Gray, ClientRectangle);      } }     class CaptureLossWindow : NativeWindow  {      public CaptureLoss form;          protected override void WndProc(ref Message message)       {           if (message.Msg == 533)                 // WM_CAPTURECHANGED                form.OnLostCapture();               base.WndProc(ref message);      } }