win32 获取鼠标位置
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out POINT lpPoint);
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
public POINT(int x, int y)
{
this.X = x;
this.Y = y;
}
}移动窗体
private void g1_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
//this.DragMove();
MouseCursor_Point = System.Windows.Forms.Cursor.Position;
}
}
System.Drawing.Point MouseCursor_Point;
private void g1_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
System.Drawing.Point MouseCursor_Point_Aux;
MouseCursor_Point_Aux = System.Windows.Forms.Cursor.Position;
if (MouseCursor_Point_Aux.X >= MouseCursor_Point.X)
this.Left += MouseCursor_Point_Aux.X - MouseCursor_Point.X;
else
this.Left -= MouseCursor_Point.X - MouseCursor_Point_Aux.X;
if (MouseCursor_Point_Aux.Y >= MouseCursor_Point.Y)
this.Top += MouseCursor_Point_Aux.Y - MouseCursor_Point.Y;
else
this.Top -= MouseCursor_Point.Y - MouseCursor_Point_Aux.Y;
MouseCursor_Point = MouseCursor_Point_Aux;
}
}获取鼠标在窗体内的位置
e.MouseDevice.GetPosition(curtainCanvas);
本文介绍如何使用Win32 API进行鼠标位置的获取,并实现通过鼠标拖动窗体的功能。具体包括调用user32.dll库中的GetCursorPos函数获取鼠标坐标,以及在窗体的MouseDown和MouseMove事件中实现窗体跟随鼠标的移动。
1425

被折叠的 条评论
为什么被折叠?



