Hallo,
ich habe eine Anwendung geschrieben, die mir erlaubt, ausgehend von der aktuellen Cursor Position ein Ellipse Objekt zu zeichnen, sodass die Ellipse dann dem Cursor folgt. Das funktioniert auch wirklich gut muss ich sagen, jedoch habe ich zwei Fragen.
Meinen aktueller Code:
Spoiler anzeigen
ich habe eine Anwendung geschrieben, die mir erlaubt, ausgehend von der aktuellen Cursor Position ein Ellipse Objekt zu zeichnen, sodass die Ellipse dann dem Cursor folgt. Das funktioniert auch wirklich gut muss ich sagen, jedoch habe ich zwei Fragen.
- Ich habe naiver Weise versucht eine gefüllte kreisförmige Ellipse zu zeichnen (siehe unteren Teil im Code). Dies hat leider dazu geführt, dass das "Klick Event" der Maus nicht mehr funktionierte, ich weiß allerdings gerade nicht warum das so ist. Ich würde jedoch gerne eine gefüllte kreisförmige Ellipse zeichnen, weiß hier jemand Rat?
- Die Schnelligkeit der Cursorverfolgung könnte meiner Meinung nach noch verbessert werden. Gerade wenn die Maus sehr schnell bewegt wird, sieht man dann doch, dass die gezeichnete Ellipse hier etwas träge ist. Meine Frage ist daher kann man das überhaupt schneller machen? Ich wüsste nur, dass man das Timer Intervall anpassen könnte, aber das hilft hier nicht viel...
Meinen aktueller Code:
C#-Quellcode
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- namespace CursorHacks
- {
- public partial class Form1 : Form
- {
- int circle_size = 30;
- public Form1()
- {
- InitializeComponent();
- TopMost = true;
- ShowInTaskbar = false;
- FormBorderStyle = FormBorderStyle.None;
- BackColor = Color.Blue;
- TransparencyKey = Color.Blue;
- Width = 42;
- Height = 42;
- timer1.Interval = 5;
- timer1.Enabled = true;
- timer1.Start();
- }
- void Timer1_Tick(object sender, EventArgs e)
- {
- Point cursor_point = Cursor.Position;
- cursor_point.Offset(-(Width / 2), -(Height / 2));
- Location = cursor_point;
- this.TopMost = true;
- Show();
- }
- private void Form1_Paint(object sender, PaintEventArgs e)
- {
- e.Graphics.DrawEllipse(Pens.Black, (Width - circle_size) / 2, (Height - circle_size) / 2, circle_size, circle_size);
- // Mein neues Vorhaben:
- //Color clr = Color.FromArgb(100, Color.Red);
- //e.Graphics.FillEllipse(new SolidBrush(clr), (Width - circle_size) / 2, (Height - circle_size) / 2, circle_size, circle_size)
- }
- }
- }