/// <summary> /// Perform your drawing-operations here /// </summary> /// <param name="seconds">Time in seconds since the last Draw-call</param> protected virtual void OnDraw(double seconds) { if (this.DrawOnlyWhenInForeground) { if (WinAPI.GetForegroundWindow() != this.hWnd) { return; } } WinAPI.MARGINS margins = new WinAPI.MARGINS(); margins.topHeight = 0; //this.Top; margins.bottomHeight = 0; // this.Bottom; margins.leftWidth = this.Left; margins.rightWidth = this.Right; this.Invoke((MethodInvoker)(() => { WinAPI.DwmExtendFrameIntoClientArea(this.Handle, ref margins); })); this.Renderer.BeginDraw(); this.Renderer.Clear(this.Renderer.GetRendererBackColor()); this.OnBeforeDrawingEvent(new OverlayEventArgs(this)); foreach (UI.Control <TRenderer, TColor, TVector2, TFont> control in ChildControls) { if (control.Visible) { control.Draw(this.Renderer); } } this.OnAfterDrawingEvent(new OverlayEventArgs(this)); this.Renderer.EndDraw(); }
protected override void OnResize(EventArgs e) { base.OnResize(e); WinAPI.MARGINS margins = new WinAPI.MARGINS(); margins.topHeight = 0; margins.bottomHeight = 0; margins.leftWidth = this.Left; margins.rightWidth = this.Right; this.Invoke((MethodInvoker)(() => { WinAPI.DwmExtendFrameIntoClientArea(this.Handle, ref margins); })); }
protected override void WndProc(ref Message m) { if (m.Msg == WinAPI.WM_NCPAINT && AeroEnabled) { var v = 2; WinAPI.DwmSetWindowAttribute(this.Handle, 2, ref v, 4); var margins = new WinAPI.MARGINS() { bH = 1, lW = 1, rW = 1, tH = 1 }; WinAPI.DwmExtendFrameIntoClientArea(this.Handle, ref margins); } base.WndProc(ref m); }