none
鼠标滚轮不能控制图形:连续放大或缩小。 RRS feed

  • 问题

  •  我希望鼠标滚轮滚动时,图形也能放大缩小.去掉"//"运行时可以显示"鼠标滚动事件已被捕捉" 但图形不能连续放大缩小(只能显示一个放大的图形,鼠标滚轮滚动时图形就不变了),感觉x.scale的参数不对,但不知如何修改,请指点,谢谢。
    public Form1()
            {
                InitializeComponent();
                this.MouseWheel += new      System.Windows.Forms.MouseEventHandler(this.panel1_MouseWheel);              
            }
    private void panel1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
            { 
                   //MessageBox.Show("鼠标滚动事件已被捕捉");      
                Graphics g = this.CreateGraphics();
                Matrix X = new Matrix();                              
                X.Scale(e.Delta/20,e.Delta/20, MatrixOrder.Append);
                g.Transform = X;
                g.DrawEllipse(pen2, 20, 20, 80, 80);
                g.Dispose();              
            }
            


    杲大盛 ...........勤!能!补!拙!........ 勤!勤!勤!.............

    2014年3月2日 2:12

答案

  • e.Delta表示鼠标当前滚轮滚动的“角度”,以下代码演示了根据滚动角度计算放大缩小倍数的方法,你可以试一下:

    private float _倍数 = 1;
            private void panel1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                //MessageBox.Show("鼠标滚动事件已被捕捉");      
                Graphics g = this.CreateGraphics();
                g.Clear(SystemColors.Control);
                Matrix X = new Matrix();
                _倍数 += (float)e.Delta / 360;
                X.Scale(_倍数, _倍数, MatrixOrder.Append);
                g.Transform = X;
                g.DrawEllipse(Pens.Black, 20, 20, 80, 80);
                g.Dispose();
            }

    2014年3月2日 9:44