資源描述:
《《鼠標(biāo)、鍵盤和OLE》PPT課件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第9章鼠標(biāo)、鍵盤和OLE控件鼠標(biāo)鍵盤事件拖放使用OLE控件9.1鼠標(biāo)9.1.1鼠標(biāo)事件在程序運(yùn)行時,有時需要對鼠標(biāo)指針的位置和狀態(tài)變化作出響應(yīng),因此除了常用的Click和DblClick事件之外,還需要使用鼠標(biāo)事件,鼠標(biāo)事件包括MouseUp、MouseDown和MouseMove。1.鼠標(biāo)事件的格式鼠標(biāo)事件包括MouseUp、MouseDown和MouseMove,分別是當(dāng)釋放鼠標(biāo)、按下鼠標(biāo)和移動鼠標(biāo)時觸發(fā)的。MouseUp、MouseDown和MouseMove鼠標(biāo)事件的語法格式是統(tǒng)一的。語法:PrivateSub對象_鼠標(biāo)事件(ButtonAsInteger,ShiftAsInte
2、ger,XAsSingle,YAsSingle)9.1.1鼠標(biāo)事件說明:(1)Button表示是哪個鼠標(biāo)鍵被按下或釋放。用0、1、2三個位表示鼠標(biāo)的左、右、中鍵,每位用0、1表示被按下或釋放,三個位的二進(jìn)制轉(zhuǎn)換成十進(jìn)制就是Button的值,如圖9.1所示,表9.1列出了按鈕與常數(shù)值的對應(yīng)關(guān)系。十進(jìn)制二進(jìn)制常數(shù)按下按鈕0000無1001vbLeftButton左按鍵2010vbRightButton右按鍵3011vbMiddleButton中按鍵4100VbLeftButton+vbRightButton左、右按鍵5101VbLeftButton+vbMiddleButton左、中按鍵61
3、10VbRightButton+vbMiddleButton右、中按鍵7111VbLeftButton+vbRightButton+vbMiddleButton左、中、右按鍵表9.1Button常數(shù)值圖9.1Button鍵9.1.1鼠標(biāo)事件(2)Shift表示當(dāng)鼠標(biāo)鍵被按下或被釋放時,Shift、Ctrl、Alt鍵的按下或釋放狀態(tài)。用0、1、2三個位表示鼠標(biāo)的Shift、Ctrl、Alt鍵,三個位的二進(jìn)制轉(zhuǎn)換成十進(jìn)制數(shù)就是Shift的值。Shift、Ctrl、Alt鍵切換常數(shù)如表9.2所示。常數(shù)值描述vbShiftMask1SHIFT鍵被按下。vbCtrlMask2CTRL鍵被按下。vb
4、AltMask4ALT鍵被按下。表9.2Shift的常數(shù)值9.1.1鼠標(biāo)事件(3)X、Y表示鼠標(biāo)指針的坐標(biāo)位置。如果鼠標(biāo)指針在窗體或圖片框中,用該對象內(nèi)部的坐標(biāo)系,其他控件則用控件對象所在容器的坐標(biāo)系。關(guān)于鼠標(biāo)鍵事件有幾點(diǎn)說明:移動鼠標(biāo)連續(xù)觸發(fā)MouseMove事件。按下鼠標(biāo)鍵,觸發(fā)MouseDown事件。釋放鼠標(biāo)鍵,觸發(fā)MouseUp事件。MouseUp事件之后,觸發(fā)Click事件。鼠標(biāo)事件可以區(qū)分鼠標(biāo)的左、右、中鍵與Shift、Ctrl、Alt鍵,并可識別和響應(yīng)各種鼠標(biāo)狀態(tài)。Click和DblClick事件不能識別鼠標(biāo)的左、右、中鍵與Shift、Ctrl、Alt鍵。鼠標(biāo)事件是由鼠標(biāo)指
5、針?biāo)诘拇绑w或控件來識別的。如果按下鼠標(biāo)不放,則對象將繼續(xù)識別所有鼠標(biāo)事件(即使指針已離開對象仍繼續(xù)識別),直到用戶釋放鼠標(biāo)為止。9.1.1鼠標(biāo)事件2.MouseDown和MouseUp事件MouseDown和MouseUp事件分別當(dāng)鼠標(biāo)按下和釋放時觸發(fā),通??梢杂脕碓谶\(yùn)行時調(diào)整控件的位置,或?qū)崿F(xiàn)某些圖形效果。MouseDown事件更常用些?!纠?-1】在窗體中制作一個畫線和畫方塊的程序。界面設(shè)計:放置一個圖片框Picture1用來繪圖,三個按鈕Command1~Command3,其中Command1和Command2分別為“直線”和“方塊”。功能要求:單擊Command1或Comman
6、d2按鈕后,在圖片框中單擊鼠標(biāo)當(dāng)鼠標(biāo)按下時確定一個端點(diǎn),當(dāng)鼠標(biāo)釋放時確定另一個端點(diǎn)來畫直線或畫方塊。Command3在圖片框中清除圖形。運(yùn)行界面如圖9.2所示。圖9.2運(yùn)行界面9.1.1鼠標(biāo)事件程序代碼如下:DimC1AsIntegerDimX1AsInteger,Y1AsIntegerPrivateSubCommand1_Click()'單擊直線按鈕C1=1EndSubPrivateSubCommand3_Click()'單擊方塊按鈕C1=2EndSubPrivateSubForm_Load()'裝載窗體C1=0EndSub9.1.1鼠標(biāo)事件在圖片框中按下鼠標(biāo)鍵時確定一個端點(diǎn)。Priv
7、ateSubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)'在圖片框中按下鼠標(biāo)鍵IfButton=1ThenX1=XY1=YEndIfEndSub9.1.1鼠標(biāo)事件在圖片框中釋放鼠標(biāo)鍵則確定另一個端點(diǎn),根據(jù)單擊的按鈕,在圖片框中由兩端點(diǎn)畫直線和畫方塊。PrivateSubPicture1_MouseUp(ButtonAsInteger,Sh