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