Visual Basic語(yǔ)言程序設(shè)計(jì)及實(shí)驗(yàn)教程課件第8、9章 鍵盤鼠標(biāo)事件和圖形操作_第1頁(yè)
Visual Basic語(yǔ)言程序設(shè)計(jì)及實(shí)驗(yàn)教程課件第8、9章 鍵盤鼠標(biāo)事件和圖形操作_第2頁(yè)
Visual Basic語(yǔ)言程序設(shè)計(jì)及實(shí)驗(yàn)教程課件第8、9章 鍵盤鼠標(biāo)事件和圖形操作_第3頁(yè)
Visual Basic語(yǔ)言程序設(shè)計(jì)及實(shí)驗(yàn)教程課件第8、9章 鍵盤鼠標(biāo)事件和圖形操作_第4頁(yè)
Visual Basic語(yǔ)言程序設(shè)計(jì)及實(shí)驗(yàn)教程課件第8、9章 鍵盤鼠標(biāo)事件和圖形操作_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第8章鼠標(biāo)和鍵盤事件8.1鍵盤事件8.2鼠標(biāo)事件8.3應(yīng)用8.1鍵盤事件

KeyPress事件:用戶按下并且釋放一個(gè)會(huì)產(chǎn)生ASCII碼的鍵時(shí)被觸發(fā)。

KeyDown事件:用戶按下鍵盤上任意一個(gè)鍵時(shí)被觸發(fā)。

KeyUp事件:用戶釋放鍵盤上任意一個(gè)鍵時(shí)被觸發(fā)。參數(shù)KeyPress事件

PrivateSubForm_KeyPress(KeyAsciiAsInteger)……EndSub參數(shù)KeyAscii是按鍵事件發(fā)生后,返回所按鍵的ASCII碼值。例:用窗體的KeyPress事件書寫程序,判斷按下的鍵是否為英文字母,如果是則輸出,否則“響鈴”。PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)……EndSubPrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)……EndSub2.KeyDown和KeyUp事件KeyCode參數(shù)返回按鍵的掃描碼。鍵盤上的每個(gè)鍵均有惟一的掃描碼,此參數(shù)指示了按鍵的物理位置。如"A"與"a"是同一個(gè)鍵,故掃描碼均為65。但是鍵盤上的“1”和數(shù)字小鍵盤的“1”就有不同的掃描碼,盡管它們生成相同的字符。Shift參數(shù),判斷是否在操作過(guò)程中按下了Shift、Ctrl和Alt鍵,以及以什么樣的組合(如果存在)按下這些鍵。實(shí)際上Shift參數(shù)是一個(gè)三位二進(jìn)制數(shù):

b2b1b0b0=1表示按下Shift鍵

b1=1表示按下Ctrl鍵

b2=1表示按下Alt鍵如果按Shift鍵,則Shift為1;如果按Ctrl鍵,則Shift為2;如果按Alt鍵,則Shift為4。應(yīng)使用這些鍵值的總和來(lái)判斷這些組合。例如,同時(shí)按下Shift和Alt鍵時(shí)Shift等于5(1+4)。例如,創(chuàng)建一個(gè)工程,編寫如下代碼,實(shí)現(xiàn)在小寫字母輸入狀態(tài)下,用Shift參數(shù)區(qū)分輸入的字母是大寫還是小寫,并在窗體上輸出相應(yīng)的字母和KeyCode值。PrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode>=Asc("A")AndKeyCode<=Asc("Z")ThenIfShift=1ThenPrintChr(KeyCode);KeyCodeElsePrintLCase(Chr(KeyCode));KeyCodeEndIfEndIfEndSub小技巧:一般來(lái)說(shuō),如果需要檢測(cè)鍵盤輸入的哪個(gè)字符,則選用KeyPress事件;如果需要檢測(cè)所按的是哪個(gè)鍵,則選用KeyUp或KeyDown事件。8.2鼠標(biāo)事件

MouseDown事件:按下任意鼠標(biāo)按鈕時(shí)發(fā)生。

MouseUp事件:釋放任意鼠標(biāo)按鈕時(shí)發(fā)生。

MouseMove事件:每當(dāng)鼠標(biāo)指針移動(dòng)到屏幕新位置時(shí)發(fā)生。參數(shù)⑴Button是一個(gè)三位二進(jìn)制數(shù)b2b1b0,描述鼠標(biāo)按鈕的狀態(tài):

b0=1表示左鍵按下或釋放

b1=1表示右鍵按下或釋放

b2=1表示中鍵按下或釋放(目前幾乎見(jiàn)不到有中鍵的鼠標(biāo)器)⑵Shift參數(shù),反映用戶在按下鼠標(biāo)鍵的同時(shí),按了Shift、Ctrl、Alt這三個(gè)控制鍵中的哪一個(gè)鍵或它們的哪一種組合。⑶x,y表示鼠標(biāo)指針的位置,這里用到了接受鼠標(biāo)事件的對(duì)象的坐標(biāo)系統(tǒng)描述的鼠標(biāo)指針位置。例:編寫程序,在鼠標(biāo)左鍵單擊窗體位置顯示彩色的“*”,如圖所示,當(dāng)鼠標(biāo)右鍵單擊窗體時(shí)清除窗體信息。PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1Then'按下左鍵則輸出*

CurrentX=XCurrentY=YForeColor=QBColor(Rnd*16)Print"*"ElseClsEndIfEndSub第九章圖形操作9.1圖形操作基礎(chǔ)9.2繪圖屬性9.3圖形方法9.4圖形方法應(yīng)用9.5圖形控件9.1圖形操作基礎(chǔ)9.1.1坐標(biāo)系統(tǒng)1.坐標(biāo)的概念2.坐標(biāo)刻度與單位⑴使用缺省刻度單位⑵選擇標(biāo)準(zhǔn)刻度單位值常數(shù)說(shuō)明0VbUser用戶自定義坐標(biāo)系統(tǒng)1VbTeips緹。這是缺省刻度。1,440緹等于一英寸。2VbPoints磅。72磅等于一英寸。3VbPixels像素。像素是監(jiān)視器或打印機(jī)分辨率的最小單位。4VbCharacters字符。打印時(shí),一個(gè)字符有1/6英寸高、1/12英寸寬。5VbInches英寸。6VbMillimeters毫米。7VbCentimeters厘米。ScaleMode屬性設(shè)置值9.1.2自定義坐標(biāo)系統(tǒng)1.用坐標(biāo)屬性定義坐標(biāo)系統(tǒng)

可以使用對(duì)象的ScaleLeft、ScaleTop、ScaleWidth

和ScaleHeight

四個(gè)屬性,來(lái)創(chuàng)建自定義坐標(biāo)。例:通過(guò)坐標(biāo)屬性定義窗體Form1的坐標(biāo)系。

例:

如果窗體Froml左上角坐標(biāo)為(-200,250),右下角坐標(biāo)為(300,-150)。則x軸和y軸的正向分別為()

A.向右、向下

B.向左、向上

C.向右、向上

D.向左、向下

2.使用坐標(biāo)方法定義坐標(biāo)系統(tǒng)

使用Scale方法定義坐標(biāo)系統(tǒng)的格式:

[對(duì)象名.]Scale(x1,y1)–(x2,y2)

例:通過(guò)使用Scale方法義窗體Form1的坐標(biāo)系。

返回9.2繪圖屬性9.2.1當(dāng)前坐標(biāo)

圖形輸出對(duì)象的當(dāng)前坐標(biāo)CurrentX、CurrentY

屬性用于返回或設(shè)置在窗體或圖片框中,下一次打印或繪圖方法的水平(CurrentX)和垂直(CurrentY)坐標(biāo)。9.2.2線寬對(duì)象名.DrawWidth[=size]9.2.3線型對(duì)象名.DrawStyle[=number]

FillColor指定填充的顏色,默認(rèn)的填充顏色與輸出對(duì)象的ForeColor相同。

FillSytle屬性指定填充的圖案。

9.2.4填充9.2.5顏色1.顏色屬性⑴BackColor屬性⑵ForeColor屬性⑶BorderColor屬性⑷FillColor屬性2.顏色函數(shù)與顏色整數(shù)使用顏色函數(shù)RGB和QBColor,還可以直接使用十進(jìn)制整數(shù)或十六進(jìn)制整數(shù)返回⑴可以用&HBBGGRR形式的6位十六進(jìn)制數(shù)或十進(jìn)制整數(shù)描述顏色。十六進(jìn)制數(shù)的左邊應(yīng)加字母H,按照三基色原理,從最低字節(jié)到最高字節(jié)依次決定紅(RR)、綠(GG)和藍(lán)(BB)的量。紅、綠和藍(lán)的量分別由一個(gè)介于0~255(&H00~&HFF)之間的數(shù)來(lái)表示。表示RGB顏色的十進(jìn)制數(shù)值的取值范圍0(&HO00000)~16,777,215(&HFFFFFF)。例如:&060000表示深綠色。⑵可以使用系統(tǒng)提供的描述顏色的常量。

vbBlack&H0黑色

vbRed&HFF紅色

vbGreen&HFF00綠色

vbYellow&HFFFF黃色

vbBlue&HFF0000藍(lán)色

vbMagenta&HFF00FF洋紅

vbCyan&HFFFF00青色

vbWhite&HFFFFFF白色⑶使用RGB(r,g,b)函數(shù)。

RGB(255,0,O)表示紅色

RGB(0,255,0)表示綠色

RGB(O,O,255)表示藍(lán)色

RGB(255,255,0)表示黃色

RGB(255,0,255)表示紫色

RGB(0,255,255)表示青色

RGB(O,O,O)表示黑色

RGB(255,255,255)表示白色⑷使用QBColor()函數(shù)。值顏色值顏色0黑色8灰色1蘭色9亮蘭色2綠色10亮綠色3青色11亮青色4紅色12亮紅色5洋紅色13亮洋紅色6黃色14亮黃色7白色15亮白色9.3圖形方法9.3.1Line方法

Line方法用于在對(duì)象上畫直線和矩形。其使用語(yǔ)法格式為:[對(duì)象名.]Line[Step](x1,y1)-[Step](x2,y2),[color],[B][F]

例:使用Line方法畫三角形、矩形框和矩形塊。

9.3.2Circle方法

Circle方法用于在對(duì)象上畫圓、橢圓、弧或扇形,其語(yǔ)法格式為:對(duì)象名.Circle

[Step](x,y),半徑,[color,start,end,aspect]

例:使用Circle方法畫扇形、畫圓、畫橢圓。

9.3.3PSet方法

Pset方法用于在對(duì)象上的指定位置,按指定顏色畫點(diǎn)。語(yǔ)法格式為:對(duì)象名.PSet[Step](x,y),[color]返回例:利用參數(shù)方程畫正弦曲線。例:下面程序運(yùn)行后輸出的圖形是()PrivateSubForm_Click()Constangle=3.14159/180ForI=0To360Step30X1=1000+900*Cos(angle*I)Y1=1000+900*Sin(angle*I)X2=1000+500*Cos(angle*I)Y2=1000+500*Sin(angle*I)Line(X1,Y1)-(X2,Y2)Circle(1000,1000),480NextIEndSub例:運(yùn)行下面程序后,按命令按鈕Command1,在窗體上顯示的結(jié)果是:

PrivateSubCommand1_Click()Fork=1To10Col=Int(Rnd*16)Rad=Int(Rnd*1000+100)Circle(2000,1500),Rad,QBColor(Col)NextkEndSub10個(gè)半徑不同,顏色相同,圓心位置相同的圓B.10個(gè)半徑相同,顏色不同,圓心位置相同的圓C.10個(gè)半徑不同,顏色不同,圓心位置相同的圓D.10個(gè)半徑不同,顏色不同,圓心位置不同的圓

例:下列程序運(yùn)行后,窗體上顯示的圖形為()

PrivateSubForm_Click()DimCenterXAsInteger,CenterYAsIntegerCenterX=Form1.ScaleWidth/2CenterY=Form1.ScaleHeight/2PSet(0,CenterY)Fori=1To10Line-Step(500,-500)Line-Step(0,500)NextiEndSubABCD9.4圖形方法應(yīng)用9.4.1幾何形繪制例

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論