我要做的是界面上有一个长方形的物体(GDI+画的),如果鼠标滚轮向上的话,那么长方形向左转动,如果向下的话,长方形则向右转动。最好是45°/次 的转动!

解决方案 »

  1.   

    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            Bitmap memBitmap;
            float currRotation = 10;
            Rectangle rect = new Rectangle(100, 50, 150, 100);
            public Form1()
            {
                InitializeComponent();
                memBitmap = new Bitmap(this.Width, this.Height);
                using (Graphics g = Graphics.FromImage(memBitmap))
                {
                    g.DrawRectangle(Pens.Blue, rect);
                }
            }
            protected override void OnMouseWheel(MouseEventArgs e)
            {
                currRotation -= 5.0f * e.Delta / SystemInformation.MouseWheelScrollDelta;     // 5 degree, you can make it 45
                Invalidate();
            }
            protected override void OnPaint(PaintEventArgs e)
            {
                float shiftX = (rect.Left + rect.Right) / 2.0f;
                float shiftY = (rect.Top + rect.Bottom) / 2.0f;
                using (Graphics g = e.Graphics)
                {
                    g.TranslateTransform(shiftX, shiftY);
                    g.RotateTransform(currRotation);
                    g.TranslateTransform(-shiftX, -shiftY);
                    g.DrawImageUnscaled(memBitmap, 0, 0);
                }
            }
        }
    }