?指定坐标初始化的代码问题

烂熊邓 2011-10-18 07:36:42
各位大侠:
这里有段代码不是很懂:
private void Form1_MouseDown(object sender,MouseEventArgs e)
{
mouse_offset=new Point(-e.X,-e.Y); //这里是什么意思;为甚么用 -e;前面的mouse_offset是系统的变量么?因为没有见到它的声明。
}

...全文
58 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
classbob 2011-10-18
  • 打赏
  • 举报
回复
代码的逻辑自己好好看一下吧
无框窗体的移动有很简单的做法:

public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HTCAPTION = 2;

[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hwnd, uint msg, int wParam, int lParam);

protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);

this.Capture = false;
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
烂熊邓 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 classbob 的回复:]
引用 2 楼 lanxiongdeng 的回复:

引用 1 楼 classbob 的回复:
是-(e.X),目的是对鼠标位置的XY坐标取反
不是系统变量,你F12看一下他在哪里定义的


大侠
的确mouse_offset不是系统的变量,它之前就定义了的
但是,为什么 mouse_offset=new Point(-e.X,-e.Y); //用指定坐标初始化
这里为啥要用对鼠……
[/Quote]

我是做无框窗体,窗体上添加一个“关闭按钮”,并且可以实现鼠标拖动窗体移动的功能。
烂熊邓 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 classbob 的回复:]
引用 2 楼 lanxiongdeng 的回复:

引用 1 楼 classbob 的回复:
是-(e.X),目的是对鼠标位置的XY坐标取反
不是系统变量,你F12看一下他在哪里定义的


大侠
的确mouse_offset不是系统的变量,它之前就定义了的
但是,为什么 mouse_offset=new Point(-e.X,-e.Y); //用指定坐标初始化
这里为啥要用对鼠……
[/Quote]
我的程序:一个无框窗体上有个“关闭”按钮,并且能用鼠标实行拖动。
classbob 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lanxiongdeng 的回复:]

引用 1 楼 classbob 的回复:
是-(e.X),目的是对鼠标位置的XY坐标取反
不是系统变量,你F12看一下他在哪里定义的


大侠
的确mouse_offset不是系统的变量,它之前就定义了的
但是,为什么 mouse_offset=new Point(-e.X,-e.Y); //用指定坐标初始化
这里为啥要用对鼠标位置的X Y 坐标……
[/Quote]
这要看你的程序是要做什么呀。你Find All References看一下所有用到mouse_offset的地方,看看他都用来做了些什么
烂熊邓 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 classbob 的回复:]
是-(e.X),目的是对鼠标位置的XY坐标取反
不是系统变量,你F12看一下他在哪里定义的
[/Quote]

大侠
的确mouse_offset不是系统的变量,它之前就定义了的
但是,为什么 mouse_offset=new Point(-e.X,-e.Y); //用指定坐标初始化
这里为啥要用对鼠标位置的X Y 坐标去反啦?
classbob 2011-10-18
  • 打赏
  • 举报
回复
是-(e.X),目的是对鼠标位置的XY坐标取反
不是系统变量,你F12看一下他在哪里定义的

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧