protected override void OnPaint(PaintEventArgs e) { mousePos = ScreenHelper.ScreenToClient(ScreenHelper.GetCursorPosition()); activeMonitor = ScreenHelper.GetActiveScreenBounds0Based(); Graphics g = e.Graphics; g.PixelOffsetMode = PixelOffsetMode.HighSpeed; g.InterpolationMode = InterpolationMode.NearestNeighbor; g.SmoothingMode = SmoothingMode.HighQuality; // for some reason highspeed crashes the window g.CompositingQuality = CompositingQuality.HighSpeed; g.CompositingMode = CompositingMode.SourceCopy; g.FillRectangle(backgroundBrush, clientArea); g.CompositingMode = CompositingMode.SourceOver; DrawMouseGraphics(g); if (SettingsManager.RegionCaptureSettings.Draw_Marching_Ants) { borderDotPen.DashOffset += 0.25f; if (borderDotPen.DashOffset > 10) { borderDotPen.DashOffset = 0; } Invalidate(); } }
public void DrawCursor(IntPtr hdcDest, Point offset) { if (IsVisible) { Point drawPosition = new Point(Position.X - offset.X, Position.Y - offset.Y); drawPosition = ScreenHelper.ScreenToClient(drawPosition); NativeMethods.DrawIconEx(hdcDest, drawPosition.X, drawPosition.Y, Handle, 0, 0, 0, IntPtr.Zero, NativeConstants.DI_NORMAL); } }
public void DrawCursor(Image img, Point offset) { if (IsVisible) { Point drawPosition = new Point(Position.X - offset.X, Position.Y - offset.Y); drawPosition = ScreenHelper.ScreenToClient(drawPosition); using (Graphics g = Graphics.FromImage(img)) using (Icon icon = Icon.FromHandle(Handle)) { g.DrawIcon(icon, drawPosition.X, drawPosition.Y); } } }