版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畫(huà)板系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)本工程以一個(gè)比較有趣的例子,來(lái)說(shuō)明如何使用Visual Basic來(lái)開(kāi)發(fā)Windows應(yīng)用程序。本工程將使用VB來(lái)開(kāi)發(fā)一個(gè)類似“畫(huà)圖”軟件的程序,通過(guò)此程序,我們可以實(shí)現(xiàn)用鼠標(biāo)畫(huà)直線、矩形以及不規(guī)則線等,可以控制筆線粗細(xì)等功能。本系統(tǒng)可以完成以下任務(wù):l 通過(guò)自制調(diào)色板選取畫(huà)筆的前景色和背景色。l 用戶可以設(shè)置控制畫(huà)筆的粗細(xì),顏色。l 可以畫(huà)點(diǎn)、線(直線和不規(guī)則線)、矩形等。l 指示鼠標(biāo)坐標(biāo),前景背景,按鈕工具的信息等。首先,現(xiàn)在窗體上添加各種控件,如圖1-1、圖1-1畫(huà)圖板的設(shè)計(jì)窗口控件名稱主要控件屬性名稱屬性值功能說(shuō)明Form1Caption畫(huà)圖板VBBorderSty
2、le3 Fixed DialogStartUpPosition2-屏幕中心Label3名稱Label3容納工具按鈕caption工具按鈕font宋體,5號(hào),粗體,下劃線BorderStyle1-FixedCommand1Style1-Graphical控件數(shù)組,為工具按鈕ToolTipText分別為:新建、鉛筆、畫(huà)直線、畫(huà)矩形、畫(huà)點(diǎn)、橡皮PictureBox名稱DrawPic畫(huà)布,主要的繪畫(huà)區(qū)。BorderStyle1 Fixed SinglePictureBox名稱LineCon用來(lái)指示繪圖的線寬,由其下面的滾動(dòng)條控制。BackColor &H8000000F&BorderStyle1 Fi
3、xed SingleHScrollBar名稱HScroll1控制繪圖的線寬。LargeChange1Max20Min1Label名稱Info用來(lái)顯示提示信息等Caption工具指示器BorderStyle1 Fixed Single名稱Label4Caption鼠標(biāo)坐標(biāo)Line1這是一個(gè)線的控件數(shù)組,一黑一白,位置相對(duì)成立體效果Label2BorderStyle1 Fixed Single存放前景背景顏色Label名稱ForeSee存放前景顏色BorderStyle1 Fixed SingleLabel名稱BackSee存放背景顏色BorderStyle1 Fixed SingleLabel名
4、稱Label1控件數(shù)組,用于存放顏料盒,選擇不同的背景顏色。BorderStyle1 Fixed SingleBackColor(選擇不同的顏色即可)CommandButton名稱Command2Caption畫(huà)板清空名稱Command3Caption退出圖1-2畫(huà)圖板的運(yùn)行窗口本系統(tǒng)采用的主要原理:l 系統(tǒng)初始化:完成系統(tǒng)的各項(xiàng)初始化。Dim nToolNum, nMyForeColor, nMyBackColor被訪問(wèn)的工具按鈕、前景、背景Dim nStartX, nStartY, nEndX, nEndY As Integer指定開(kāi)始和結(jié)束坐標(biāo)Dim nLineWidth As Inte
5、ger指定線寬Dim DrawOrNot As Boolean 是否開(kāi)始畫(huà)圖Private Sub Form_Load()初始化各項(xiàng)參數(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如果是左鍵,則進(jìn)行前景顏色設(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如果是右鍵,則進(jìn)行背景顏色設(shè)置 BackSee.BackColor = Label1(Index).BackColor LineCon.BackColor = BackSee.BackColor nMyBackColor = BackSee.BackColor End If nMyForeColor = ForeSee.BackColor nMyBackColor = BackSee.BackColorEnd Subl 用滾動(dòng)條控制畫(huà)筆的線寬:Private Sub HScroll1_Change() LineCon.BackColor = BackSee.BackColor D
8、emoLine.BorderWidth = HScroll1.Value DrawPic.DrawWidth = HScroll1.ValueEnd Subl 用鼠標(biāo)進(jìn)行畫(huà)圖的過(guò)程控制:Private Sub DrawPic_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)依據(jù)按下的工具值,來(lái)進(jìn)行坐標(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)的移動(dòng)來(lái)進(jìn)行作圖,并根據(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ù)按下的工具值,來(lái)用正常的繪圖方式將畫(huà)好的圖重新繪制一遍,使在鼠標(biāo)移動(dòng)過(guò)程中的異或方式畫(huà)的圖被覆蓋。使之能正常顯示。 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 點(diǎn)擊工具按鈕現(xiàn)實(shí)的提示信息:Private Sub Command1_Click(Index As Integer) Select Case Index Case 0: Info.Caption = 你用的是清除畫(huà)板 DrawPic.Cls Case 1: nToolNum = 1 Info.Caption = 你用的是鉛筆 Case 2: nToolNum = 2 Info.Caption = 你用的是畫(huà)直線 Case 3: nToolNum
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小額充值代理合同范本
- 廣告設(shè)計(jì)戰(zhàn)略協(xié)議合同
- 托運(yùn)合同發(fā)票補(bǔ)充協(xié)議
- 工傷賠償款協(xié)議書(shū)范本
- 山西藥品采購(gòu)合同范本
- 家居設(shè)計(jì)租賃合同范本
- 廣告設(shè)計(jì)營(yíng)銷合同范本
- 委托銷售檳榔合同范本
- 高考物理單元總復(fù)習(xí)牛頓第一定律牛頓第三定律新人教版教案
- 公開(kāi)課教案教學(xué)設(shè)計(jì)蘇教初中語(yǔ)文七上古代寓言二則一二(2025-2026學(xué)年)
- 瀝青維護(hù)工程投標(biāo)方案技術(shù)標(biāo)
- 深圳機(jī)場(chǎng)突發(fā)事件應(yīng)急預(yù)案
- 水電站建筑物課程設(shè)計(jì)
- 個(gè)人借款合同個(gè)人借款協(xié)議
- 生物科技股份有限公司GMP質(zhì)量手冊(cè)(完整版)資料
- 兒童行為量表(CBCL)(可打印)
- 地貌學(xué)與第四紀(jì)地質(zhì)學(xué)總結(jié)
- 2023年德語(yǔ)專業(yè)四級(jí)考試真題
- GB/T 36713-2018能源管理體系能源基準(zhǔn)和能源績(jī)效參數(shù)
- 溫度儀表基礎(chǔ)知識(shí)課件
- OnyxWorks使用注意說(shuō)明
評(píng)論
0/150
提交評(píng)論