C#创建一个跟随鼠标的图像
我试图在winForm中用C语言创建一个程序,在这个程序中,一个图像将在应用程序外部跟随鼠标 我不知道如何在表单外绘制图像,更不用说让它跟随鼠标了。我的解决方案是创建一个无边界表单并让它跟随鼠标,但是这个解决方案不起作用,因为我无法通过代码移动表单 鼠标需要能够独立于此图像单击和运行 我将如何执行此操作?检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 它必须在不改变鼠标使用方式的情况下执行此操作 为扩展样式设置WS_EX_TRANSPARENT,使窗体忽略鼠标单击。将“最顶层”设置为True,将“不透明度”设置为小于100%的值以使其半透明。使用计时器移动表单。比如:C#创建一个跟随鼠标的图像,c#,image,winforms,mouse,C#,Image,Winforms,Mouse,我试图在winForm中用C语言创建一个程序,在这个程序中,一个图像将在应用程序外部跟随鼠标 我不知道如何在表单外绘制图像,更不用说让它跟随鼠标了。我的解决方案是创建一个无边界表单并让它跟随鼠标,但是这个解决方案不起作用,因为我无法通过代码移动表单 鼠标需要能够独立于此图像单击和运行 我将如何执行此操作?检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Opacity = .5;
this.TopMost = true;
this.BackColor = Color.Yellow;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
// Makes the form circular:
System.Drawing.Drawing2D.GraphicsPath GP = new System.Drawing.Drawing2D.GraphicsPath();
GP.AddEllipse(this.ClientRectangle);
this.Region = new Region(GP);
}
const int WS_EX_TRANSPARENT = 0x20;
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
return cp;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Point pt = Cursor.Position;
pt.Offset(-1 * this.Width / 2, -1 * this.Height / 2);
this.Location = pt;
}
}
它必须在不改变鼠标使用方式的情况下执行此操作
为扩展样式设置WS_EX_TRANSPARENT,使窗体忽略鼠标单击。将“最顶层”设置为True,将“不透明度”设置为小于100%的值以使其半透明。使用计时器移动表单。比如:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Opacity = .5;
this.TopMost = true;
this.BackColor = Color.Yellow;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
// Makes the form circular:
System.Drawing.Drawing2D.GraphicsPath GP = new System.Drawing.Drawing2D.GraphicsPath();
GP.AddEllipse(this.ClientRectangle);
this.Region = new Region(GP);
}
const int WS_EX_TRANSPARENT = 0x20;
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
return cp;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Point pt = Cursor.Position;
pt.Offset(-1 * this.Width / 2, -1 * this.Height / 2);
this.Location = pt;
}
}
它必须在不改变鼠标使用方式的情况下执行此操作
为扩展样式设置WS_EX_TRANSPARENT,使窗体忽略鼠标单击。将“最顶层”设置为True,将“不透明度”设置为小于100%的值以使其半透明。使用计时器移动表单。比如:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Opacity = .5;
this.TopMost = true;
this.BackColor = Color.Yellow;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
// Makes the form circular:
System.Drawing.Drawing2D.GraphicsPath GP = new System.Drawing.Drawing2D.GraphicsPath();
GP.AddEllipse(this.ClientRectangle);
this.Region = new Region(GP);
}
const int WS_EX_TRANSPARENT = 0x20;
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
return cp;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Point pt = Cursor.Position;
pt.Offset(-1 * this.Width / 2, -1 * this.Height / 2);
this.Location = pt;
}
}
它必须在不改变鼠标使用方式的情况下执行此操作
为扩展样式设置WS_EX_TRANSPARENT,使窗体忽略鼠标单击。将“最顶层”设置为True,将“不透明度”设置为小于100%的值以使其半透明。使用计时器移动表单。比如:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Opacity = .5;
this.TopMost = true;
this.BackColor = Color.Yellow;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
// Makes the form circular:
System.Drawing.Drawing2D.GraphicsPath GP = new System.Drawing.Drawing2D.GraphicsPath();
GP.AddEllipse(this.ClientRectangle);
this.Region = new Region(GP);
}
const int WS_EX_TRANSPARENT = 0x20;
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
return cp;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Point pt = Cursor.Position;
pt.Offset(-1 * this.Width / 2, -1 * this.Height / 2);
this.Location = pt;
}
}
你不能用自定义鼠标光标来代替编写应用程序吗?检查这个线程:看起来你想这样做。希望这有帮助!不,我不能,因为这将与触摸模拟输入一起使用,以便用户知道他们触摸的位置。Rohit,该线程对我没有帮助,也不是我想要做的。谢谢你。下面的图像不会影响鼠标的使用或单击。为什么不能通过代码移动表单<代码>表单.位置???你不能用自定义鼠标光标来代替编写应用程序吗?检查此线程:似乎你想做类似的事情。希望这有帮助!不,我不能,因为这将与触摸模拟输入一起使用,以便用户知道他们触摸的位置。Rohit,该线程对我没有帮助,也不是我想要做的。谢谢你。下面的图像不会影响鼠标的使用或单击。为什么不能通过代码移动表单<代码>表单.位置???你不能用自定义鼠标光标来代替编写应用程序吗?检查此线程:似乎你想做类似的事情。希望这有帮助!不,我不能,因为这将与触摸模拟输入一起使用,以便用户知道他们触摸的位置。Rohit,该线程对我没有帮助,也不是我想要做的。谢谢你。下面的图像不会影响鼠标的使用或单击。为什么不能通过代码移动表单<代码>表单.位置???你不能用自定义鼠标光标来代替编写应用程序吗?检查此线程:似乎你想做类似的事情。希望这有帮助!不,我不能,因为这将与触摸模拟输入一起使用,以便用户知道他们触摸的位置。Rohit,该线程对我没有帮助,也不是我想要做的。谢谢你。下面的图像不会影响鼠标的使用或单击。为什么不能通过代码移动表单<代码>表单.位置???不,这不是我想做的。我也不喜欢投票被否决。我特别说过,图像的移动不会影响鼠标的使用,它必须自然移动。比如,如果我想创建一个在鼠标后面有放大镜图像的程序,它必须在不改变鼠标使用方式的情况下完成。谢谢你的意见,非常感谢。不,对不起,我的原始信息不太清楚。在我的程序中,我是模拟触摸输入,需要一个图像来跟踪手指的位置(使用深度相机),所以我基本上需要在屏幕上绘制一个不会影响任何东西的覆盖图像,只需服务,让用户知道他们的手指在哪里。不,这不是我想要做的。我也不喜欢投票被否决。我特别说过,图像的移动不会影响鼠标的使用,它必须自然移动。比如,如果我想创建一个在鼠标后面有放大镜图像的程序,它必须在不改变鼠标使用方式的情况下完成。谢谢你的意见,非常感谢。不,对不起,我的原始信息不太清楚。在我的程序中,我是模拟触摸输入,需要一个图像来跟踪手指的位置(使用深度相机),所以我基本上需要在屏幕上绘制一个不会影响任何东西的覆盖图像,只需服务,让用户知道他们的手指在哪里。不,这不是我想要做的。我也不喜欢投票被否决。我特别说过,图像的移动不会影响鼠标的使用,它必须自然移动。比如,如果我想创建一个在鼠标后面有放大镜图像的程序,它必须在不改变鼠标使用方式的情况下完成。谢谢你的意见,非常感谢。不,对不起,我的原始信息不太清楚。在我的程序中,我正在模拟触摸输入,需要一个图像来跟踪手指的位置(使用深度