最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置。网上查了一些感觉他们做的挺复杂的。我自己研究一天,做了一个比较简单的,发表出来供大家参考一下。如觉得简单,可路过,谢谢。哈哈。
先大概介绍一下原因,GDI画矩形框就不说了,很简单的。这里面最主要的就是滚轮放大和左键移动两个事件,要计算矩形框的坐标位置。下面将代码贴出如下:
先是定义需要的变量,就四个变量。
//矩形框坐标
private Rectangle DrawRect = new Rectangle(0, 0, 100, 100);
//鼠标按下时坐标
private Point MouseDownP = new Point();
//放大倍数
private int zoom = 0;
//鼠标移动矩形框次数,如果移动过矩形框则不从中心放大,以移动后的位置放大缩小,缩小为原大小,缩放数为0时,重置此数
private int MoveCount = 0;
然后编写鼠标事件
private void this_MouseWheel(object sender, MouseEventArgs e)
{
if (e.Delta > 0)
{
if (zoom < 80)// 最大放大80倍
zoom++;
}
else
{
if (zoom > 0)
zoom--;
if (zoom == 0) //放大倍数=