資源描述:
《VB鍵盤與鼠標(biāo)事件過(guò)程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第十章鍵盤與鼠標(biāo)事件過(guò)程第一節(jié)KeyPress事件第二節(jié)KeyDown和KeyUp事件第三節(jié) 鼠標(biāo)事件第四節(jié) 鼠標(biāo)光標(biāo)的形狀第五節(jié) 拖放第一節(jié)KeyPress事件當(dāng)壓下鍵盤上的某個(gè)鍵時(shí),將發(fā)生KeyPress事件。注意:當(dāng)一個(gè)控件或窗體擁有輸入焦點(diǎn)時(shí),該控件或窗體將接收從鍵盤上輸入的信息。KeyPress事件中的參數(shù)IndexAsInteger只用于控件組;KeyAsciiAsInteger用于單個(gè)控件。利用KeyPress事件可以對(duì)輸入的值進(jìn)行限制。用KeyPress可以捕捉擊鍵動(dòng)作。在默認(rèn)情況下,控件的鍵盤事件優(yōu)先于窗
2、體的鍵盤事件,因此在發(fā)生鍵盤事件時(shí),總是先激活控件的鍵盤事件。PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii<48OrKeyAscii>57ThenBeepKeyAscii=0EndIfEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenPrintText1.TextEndIfKeyAscii=0‘避免輸入的字符在文本框中回顯EndSub例10.1編寫口令程序。用文本框的PassWor
3、d屬性編寫過(guò)口令程序,下面的口令程序是用KeyPress事件編寫的。第二節(jié)KeyDown和KeyUp事件當(dāng)按下鍵盤上的某個(gè)鍵時(shí),將發(fā)生KeyDown事件;而當(dāng)松開某個(gè)鍵時(shí),將發(fā)生KeyUp事件。KeyDown和KeyUp事件的參數(shù)有兩種形式,IndexAsInteger只用于控件組;KeyCodeAsInteger,ShiftAsInteger用于單個(gè)控件。1.KeyCode按鍵的實(shí)際的ASCII碼。該碼以“鍵”為準(zhǔn),而不是以“字符”為準(zhǔn)。說(shuō)明:大小寫字母用同一個(gè)鍵,它們的KeyCode相同(使用大寫字母的ASCII碼),
4、但大鍵盤上的數(shù)字鍵與數(shù)字鍵盤上相同的數(shù)字鍵的KeyCode是不一樣的。對(duì)于有上檔字符和下檔字符的鍵,其KeyCode為下檔字符的ASCII碼。2.Shift轉(zhuǎn)換鍵。它指的是3個(gè)轉(zhuǎn)換鍵的狀態(tài),包括Shift、Ctrl和Alt,這3個(gè)鍵分別以二進(jìn)制方式表示,每個(gè)鍵用3位,即Shift鍵為001,Ctrl鍵為010,Alt鍵為100。鍵(字符)KeyCodeKeyAscii“A”&H41&H41“a”&H41&H61“B”&H42&H42“b”&H42&H62“5”&H35&H35“%”&H35&H25“1”(大鍵盤)&H31&
5、H31“1”(數(shù)字鍵)&H61&H31利用邏輯符And可以判斷是否按下了某個(gè)轉(zhuǎn)換鍵。3個(gè)符號(hào)常量:ConstShift=1ConstCtrl=2ConstAlt=4如果ShiftAndShift>0則按下了Shift鍵如果ShiftAndCtrl>0則按下了Ctrl鍵如果ShiftAndAlt>0則按下了Alt鍵對(duì)于某個(gè)對(duì)象來(lái)說(shuō),當(dāng)發(fā)生某個(gè)鍵盤事件時(shí),只要通過(guò)傳送KeyCode和Shift參數(shù)調(diào)用鍵盤處理程序就可以了。PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteg
6、er)ConstAlt=4ConstKey_F2=&H71ShiftDown%=(ShiftAndShift)>0AltDown%=(ShiftAndAlt)>0F2Down%=(KeyCode=Key_F2)IfAltDown%AndF2Down%ThenText1.Text="AAAAAA"EndIfEndSub例10.2編寫一個(gè)程序,當(dāng)按下鍵盤上的某個(gè)鍵時(shí),輸出該鍵的KeyCode碼。例10.3編寫程序,演示KeyDown和KeyUp的功能。例10.4編寫程序,當(dāng)按下轉(zhuǎn)換鍵和功能鍵時(shí),輸出相應(yīng)的信息。例10.5編寫程
7、序,通過(guò)鍵盤移動(dòng)滾動(dòng)條上的滾動(dòng)框,并顯示移動(dòng)情況。第三節(jié) 鼠標(biāo)事件壓下鼠標(biāo)鍵時(shí),將觸發(fā)MouseDown事件;松開鼠標(biāo)鍵時(shí),將觸發(fā)MouseUp事件;移動(dòng)鼠標(biāo)光標(biāo)時(shí),將觸發(fā)MouseMove事件。一、鼠標(biāo)位置格式:Sub對(duì)象_事件(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle) EndSub“對(duì)象”可以是窗體或控件,“事件”可以是MouseDown、MouseUp或MouseMove。鼠標(biāo)位置由參數(shù)x、y確定。二、鼠標(biāo)鍵鼠標(biāo)鍵狀態(tài)由參數(shù)Button來(lái)設(shè)定,該參數(shù)是
8、一個(gè)整數(shù)(16位),在設(shè)置鍵狀態(tài)時(shí)實(shí)際上只使用了低3位。當(dāng)按下某個(gè)鍵時(shí),相應(yīng)的位被置1,否則為0。說(shuō)明:⑴MouseDown、MouseUp事件,只能用鼠標(biāo)的按鍵參數(shù)判斷是否按下或松開某一個(gè)鍵,不能檢查兩個(gè)鍵同時(shí)按下或松開。⑵MouseMove事件可以通過(guò)Button參數(shù)判斷按下一個(gè)或同時(shí)按下兩個(gè)、三個(gè)