namespace WindowsApplication1 { public partial class Form1 : Form { Bitmap memBitmap; //Bitmap封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。Bitmap 是用于处理由像素数据定义的图像的对象。 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.Red, rect); } }
/// <summary>
/// 滚轮事件
/// </summary>
/// <param name="e"></param>
protected override void OnMouseWheel(MouseEventArgs e) { currRotation -= 5.0f * e.Delta / SystemInformation.MouseWheelScrollDelta; // 5 度旋转,无论向上转动滚轮,还是向下转动滚轮,你可以达到预定的45度; Invalidate(); }
/// <summary>
/// 画出所需的图形,随滚轮的转动变化
/// </summary>
/// <param name="e"></param>
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); } } } }