實例018 利用鼠標繪圖spa
光盤位置:光盤\MR\01\018code
在經常使用的畫圖軟件中,用戶通常均可以經過鼠標在其中繪圖,那麼該功能是如何實現的呢?本實例將講解如何使用C#實現經過拖動鼠標在窗體上繪圖的功能,實例運行效果如圖1.18所示。orm
圖1.18 利用鼠標繪圖 |
本實例實現時主要用到了Graphics類的DrawLine方法和MouseEventArgs類的X屬性、Y屬性,下面分別對它們進行詳細介紹。xml
Graphics類中的DrawLine方法主要用來繪製直線,該方法爲可重載方法,本實例中用到的重載形式以下:對象
參數說明blog
pen:Pen對象,它肯定線條的顏色、寬度和樣式。ci
pt1:Point結構,它表示要鏈接的第一個點。開發
pt2:Point結構,它表示要鏈接的第二個點。get
說明:關於MouseEventArgs類的X屬性和Y屬性的詳細講解,請參見實例005中的關鍵技術。it
(1)打開Visual Studio 2008開發環境,新建一個Windows窗體應用程序,並將其命名爲MouseToDraw。
(2)更改默認窗體Form1的Name屬性爲Frm_Main。
(3)程序主要代碼以下:
private void Form1_MouseMove(object sender, MouseEventArgs e) { if (lastPoint.Equals(Point.Empty)) //判斷繪圖開始點是否爲空 { lastPoint = new Point(e.X, e.Y); //記錄鼠標當前位置 } if (G_OnMouseDown) //開始繪圖 { Point cruuPoint = new Point(e.X, e.Y); //獲取鼠標當前位置 graphics.DrawLine(pen, cruuPoint, lastPoint); //繪圖 } lastPoint = new Point(e.X, e.Y); //記錄鼠標當前位置 } private void Form1_MouseUp(object sender, MouseEventArgs e) { G_OnMouseDown = false; //開始繪圖標識設置爲false } private void Form1_MouseDown(object sender, MouseEventArgs e) { G_OnMouseDown = true; //開始繪圖標識設置爲true }