畫板系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
畫板系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
畫板系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
畫板系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
畫板系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、畫板系統(tǒng)的設(shè)計與實現(xiàn)本工程以一個比較有趣的例子,來說明如何使用Visual Basic來開發(fā)Windows應(yīng)用程序。本工程將使用VB來開發(fā)一個類似“畫圖”軟件的程序,通過此程序,我們可以實現(xiàn)用鼠標(biāo)畫直線、矩形以及不規(guī)則線等,可以控制筆線粗細(xì)等功能。本系統(tǒng)可以完成以下任務(wù):l 通過自制調(diào)色板選取畫筆的前景色和背景色。l 用戶可以設(shè)置控制畫筆的粗細(xì),顏色。l 可以畫點、線(直線和不規(guī)則線)、矩形等。l 指示鼠標(biāo)坐標(biāo),前景背景,按鈕工具的信息等。首先,現(xiàn)在窗體上添加各種控件,如圖1-1、圖1-1畫圖板的設(shè)計窗口控件名稱主要控件屬性名稱屬性值功能說明Form1Caption畫圖板VBBorderSty

2、le3 Fixed DialogStartUpPosition2-屏幕中心Label3名稱Label3容納工具按鈕caption工具按鈕font宋體,5號,粗體,下劃線BorderStyle1-FixedCommand1Style1-Graphical控件數(shù)組,為工具按鈕ToolTipText分別為:新建、鉛筆、畫直線、畫矩形、畫點、橡皮PictureBox名稱DrawPic畫布,主要的繪畫區(qū)。BorderStyle1 Fixed SinglePictureBox名稱LineCon用來指示繪圖的線寬,由其下面的滾動條控制。BackColor &H8000000F&BorderStyle1 Fi

3、xed SingleHScrollBar名稱HScroll1控制繪圖的線寬。LargeChange1Max20Min1Label名稱Info用來顯示提示信息等Caption工具指示器BorderStyle1 Fixed Single名稱Label4Caption鼠標(biāo)坐標(biāo)Line1這是一個線的控件數(shù)組,一黑一白,位置相對成立體效果Label2BorderStyle1 Fixed Single存放前景背景顏色Label名稱ForeSee存放前景顏色BorderStyle1 Fixed SingleLabel名稱BackSee存放背景顏色BorderStyle1 Fixed SingleLabel名

4、稱Label1控件數(shù)組,用于存放顏料盒,選擇不同的背景顏色。BorderStyle1 Fixed SingleBackColor(選擇不同的顏色即可)CommandButton名稱Command2Caption畫板清空名稱Command3Caption退出圖1-2畫圖板的運行窗口本系統(tǒng)采用的主要原理:l 系統(tǒng)初始化:完成系統(tǒng)的各項初始化。Dim nToolNum, nMyForeColor, nMyBackColor被訪問的工具按鈕、前景、背景Dim nStartX, nStartY, nEndX, nEndY As Integer指定開始和結(jié)束坐標(biāo)Dim nLineWidth As Inte

5、ger指定線寬Dim DrawOrNot As Boolean 是否開始畫圖Private Sub Form_Load()初始化各項參數(shù) nToolNum = 0 nLineWidth = 1 DrawOrNot = False nMyForeColor = RGB(0, 0, 0) nMyBackColor = RGB(255, 255, 255) DrawPic.ForeColor = nMyForeColor DrawPic.BackColor = nMyBackColorEnd Subl 在顏料盒中選定前景和背景:Private Sub Label1_MouseUp(Index As

6、Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) If (Button = 1) Then如果是左鍵,則進行前景顏色設(shè)置 ForeSee.BackColor = Label1(Index).BackColor使用控件數(shù)組獲取顏色 DemoLine.BorderColor = ForeSee.BackColor顯示線的顏色 nMyForeColor = ForeSee.BackColor DrawPic.ForeColor = ForeSee.BackColor End If If (Button =

7、2) Then如果是右鍵,則進行背景顏色設(shè)置 BackSee.BackColor = Label1(Index).BackColor LineCon.BackColor = BackSee.BackColor nMyBackColor = BackSee.BackColor End If nMyForeColor = ForeSee.BackColor nMyBackColor = BackSee.BackColorEnd Subl 用滾動條控制畫筆的線寬:Private Sub HScroll1_Change() LineCon.BackColor = BackSee.BackColor D

8、emoLine.BorderWidth = HScroll1.Value DrawPic.DrawWidth = HScroll1.ValueEnd Subl 用鼠標(biāo)進行畫圖的過程控制:Private Sub DrawPic_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)依據(jù)按下的工具值,來進行坐標(biāo)和作圖方式的選擇即DrawMode賦值,分為正常和異或(分別取值13和7)Select Case nToolNum Case 1 DrawPic.CurrentX = X: DrawPic.Curren

9、tY = Y DrawPic.DrawMode = 13 Case 2 nStartX = X: nStartY = Y nEndX = X: nEndY = Y DrawPic.DrawMode = 7 Case 3 nStartX = X: nStartY = Y nEndX = X: nEndY = Y DrawPic.DrawMode = 7 nStartX = X: nStartY = Y Case 4 If Button = 1 Then DrawPic.ForeColor = nMyForeColor Else DrawPic.ForeColor = nMyBackColor E

10、nd If nStartX = X: nStartY = Y DrawPic.DrawMode = 7 DrawPic.PSet (nStartX, nStartY), DrawPic.ForeColor Case 5 DrawPic.CurrentX = X: DrawPic.CurrentY = Y DrawPic.DrawMode = 13 nStartX = X: nStartY = Y End SelectEnd SubPrivate Sub DrawPic_MouseMove(Button As Integer, Shift As Integer, X As Single, Y A

11、s Single) 依據(jù)鼠標(biāo)的移動來進行作圖,并根據(jù)鼠標(biāo)的左右鍵判斷用前景還是背景作圖 If Button 0 Then If Button = 2 Then DrawPic.ForeColor = nMyBackColor Else DrawPic.ForeColor = nMyForeColor End If Select Case nToolNum Case 1 DrawPic.Line -(X, Y), DrawPic.ForeColor Case 2 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), Not (DrawPic.ForeCo

12、lor) DrawPic.Line (nEndX, nEndY)-(X, Y), Not (DrawPic.ForeColor) nStartX = X: nStartY = Y Case 3 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), Not (DrawPic.ForeColor), B DrawPic.Line (nEndX, nEndY)-(X, Y), Not (DrawPic.ForeColor), B nStartX = X: nStartY = Y Case 4 DrawPic.PSet (X, Y), nMyForeColor

13、 Case 5 DrawPic.Line -(X, Y), nMyBackColor End Select End If Label4.Caption = X: & X & Y: & Y顯示鼠標(biāo)的坐標(biāo)位置End SubPrivate Sub Drawpic_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 依據(jù)按下的工具值,來用正常的繪圖方式將畫好的圖重新繪制一遍,使在鼠標(biāo)移動過程中的異或方式畫的圖被覆蓋。使之能正常顯示。 Select Case nToolNum Case 2 DrawPic.Line

14、 (nEndX, nEndY)-(nStartX, nStartY) DrawPic.DrawMode = 13 DrawPic.Line (nEndX, nEndY)-(nStartX, nStartY), DrawPic.ForeColor Case 3 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), Not (DrawPic.ForeColor), B DrawPic.DrawMode = 13 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), DrawPic.ForeColor, B End SelectEnd Subl 點擊工具按鈕現(xiàn)實的提示信息:Private Sub Command1_Click(Index As Integer) Select Case Index Case 0: Info.Caption = 你用的是清除畫板 DrawPic.Cls Case 1: nToolNum = 1 Info.Caption = 你用的是鉛筆 Case 2: nToolNum = 2 Info.Caption = 你用的是畫直線 Case 3: nToolNum

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論