C#创建一个跟随鼠标的图像

C#创建一个跟随鼠标的图像,c#,image,winforms,mouse,C#,Image,Winforms,Mouse,我试图在winForm中用C语言创建一个程序,在这个程序中,一个图像将在应用程序外部跟随鼠标 我不知道如何在表单外绘制图像,更不用说让它跟随鼠标了。我的解决方案是创建一个无边界表单并让它跟随鼠标,但是这个解决方案不起作用,因为我无法通过代码移动表单 鼠标需要能够独立于此图像单击和运行 我将如何执行此操作?检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有帮助 检查此线程: 看来你想做这样的事 希望这有

我试图在winForm中用C语言创建一个程序,在这个程序中,一个图像将在应用程序外部跟随鼠标

我不知道如何在表单外绘制图像,更不用说让它跟随鼠标了。我的解决方案是创建一个无边界表单并让它跟随鼠标,但是这个解决方案不起作用,因为我无法通过代码移动表单

鼠标需要能够独立于此图像单击和运行

我将如何执行此操作?

检查此线程:

看来你想做这样的事

希望这有帮助

检查此线程:

看来你想做这样的事

希望这有帮助

检查此线程:

看来你想做这样的事

希望这有帮助

检查此线程:

看来你想做这样的事

希望这有帮助

它必须在不改变鼠标使用方式的情况下执行此操作

为扩展样式设置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;
    }

}
它必须在不改变鼠标使用方式的情况下执行此操作

为扩展样式设置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,该线程对我没有帮助,也不是我想要做的。谢谢你。下面的图像不会影响鼠标的使用或单击。为什么不能通过代码移动表单<代码>表单.位置???不,这不是我想做的。我也不喜欢投票被否决。我特别说过,图像的移动不会影响鼠标的使用,它必须自然移动。比如,如果我想创建一个在鼠标后面有放大镜图像的程序,它必须在不改变鼠标使用方式的情况下完成。谢谢你的意见,非常感谢。不,对不起,我的原始信息不太清楚。在我的程序中,我是模拟触摸输入,需要一个图像来跟踪手指的位置(使用深度相机),所以我基本上需要在屏幕上绘制一个不会影响任何东西的覆盖图像,只需服务,让用户知道他们的手指在哪里。不,这不是我想要做的。我也不喜欢投票被否决。我特别说过,图像的移动不会影响鼠标的使用,它必须自然移动。比如,如果我想创建一个在鼠标后面有放大镜图像的程序,它必须在不改变鼠标使用方式的情况下完成。谢谢你的意见,非常感谢。不,对不起,我的原始信息不太清楚。在我的程序中,我是模拟触摸输入,需要一个图像来跟踪手指的位置(使用深度相机),所以我基本上需要在屏幕上绘制一个不会影响任何东西的覆盖图像,只需服务,让用户知道他们的手指在哪里。不,这不是我想要做的。我也不喜欢投票被否决。我特别说过,图像的移动不会影响鼠标的使用,它必须自然移动。比如,如果我想创建一个在鼠标后面有放大镜图像的程序,它必须在不改变鼠标使用方式的情况下完成。谢谢你的意见,非常感谢。不,对不起,我的原始信息不太清楚。在我的程序中,我正在模拟触摸输入,需要一个图像来跟踪手指的位置(使用深度