複製鏈接
請複製以下鏈接發送給好友

MouseMove

鎖定
MouseMove,在移動鼠標時發生,語法是一個對象表達式,與對象庫相關。
中文名
MouseMove
應    用
在移動鼠標時發生
語    法
一個對象表達式
相    關
對象庫

MouseMove事件

示例應用於
此事件在移動鼠標時發生。

MouseMove語法

Private Sub Form_MouseMove(buttonAs Integer,shiftAs Integer,xAs Single,yAs Single)
Private Sub MDIForm_MouseMove(buttonAs Integer,shiftAs Integer,xAs Single,yAs Single)
Private Subobject_MouseMove([indexAs Integer,] buttonAs Integer, shiftAs Integer, xAs Single, yAs Single)
MouseMove事件語法包含下列部分:
部分
描述
object
一個對象表達式,其值是“應用於”列表中的一個對象。
index
一個整數,用來唯一地標識一個在控件數組中的控件。
button
一個整數,它對應鼠標各個按鈕的狀態,如果某個按鈕按下,其中就有一個二進制位被設置。button 參數是具有相應於左按鈕(位 0),右按鈕(位 1),以及中間按鈕(位 2)的一個位字段。這些位的值分別等於 1,2,和 4。它指示這些鼠標按鈕的整體狀態;三個二進制位中的一些、全部、或一個也沒有被設置,指示這些按鈕中的一些、全部、或一個也沒有被按下。
shift
一個整數,該整數相應於 SHIFT,CTRL,和 ALT 鍵的狀態。某鍵被按下使得一個二進制位被設置。shift參數是具有相應於 SHIFT 鍵(位 0),CTRL 鍵(位 1),以及 ALT 鍵(位 2)最少二進制位的一個位字段。這些位的值分別等於 1,2,和 4。shift 參數指示這些鍵的狀態。這些位中可能有一些、全部、或者一個也沒有被設置,指示這些鍵中的一些、全部、或者一個也沒有被按下。例如,CTRL 和 ALT 鍵都被按下,則 shift 的值就是 6。
x, y
一個指定鼠標指針當前位置的數。x y 的值所表示的總是通過該對象 ScaleHeight, ScaleWidth, ScaleLeft,和 ScaleTop 屬性所建立的座標系統的方式。

MouseMove説明

MouseMove事件伴隨鼠標指針在對象間移動時連續不斷地產生。除非有另一個對象捕獲了鼠標,否則,當鼠標位置在對象的邊界範圍內時該對象就能接收 MouseMove事件。
要測試 button shift 參數,可使用對象瀏覽器中的 Visual Basic (VB) 對象庫中所列出的常數,用來定義該參數中的各個位:
常數(按鈕)
描述
vbLeftButton
1
左按鈕按下。
vbRightButton
2
右按鈕按下。
vbMiddleButton
4
中間按鈕按下。
常數(換擋)
描述
vbShiftMask
1
SHIFT 鍵按下。
vbCtrlMask
2
CTRL 鍵按下。
vbAltMask
4
ALT 鍵按下。
然後這些常數用作位屏蔽,對於按鈕的各種組合,無須計算出各個組合的唯一的位字段值即可進行檢測。
要測試某一條件,首先將各個結果賦給一個臨時整型變量然後再與一個位屏蔽的 button shift 參數進行比較。測試應當用各個參數進行 And 運算,若結果大於零,則説明該鍵或按鈕被按下。其操作如下:
LeftDown = (Button And vbLeftButton) > 0 CtrlDown = (Shift And vbCtrlMask) > 0
然後,接下去可對結果的各種組合進行檢測,其操作如下:
If LeftDown And CtrlDown Then
注意為了對鼠標按鈕按下和釋放所引起的事件進行處理,可使用 MouseDown 和 MouseUp 事件過程。
MouseMove事件的 button 參數與 MouseDown 和 MouseUp 事件的 button 參數是不同的。對於 MouseMove事件來説,button 參數指示的是所有按鈕當前的狀態;一個 MouseMove事件可指示某些、全部或沒有一個按鈕被按下。對於 MouseDown 和 MouseUp 事件來説,button 參數在每個事件精確地指示一個按鈕。
在 MouseMove事件中任何時候移動窗口,都能引起層疊事件。當該窗口移動到指針下面時 MouseMove事件將產生。即使是鼠標完全不動 MouseMove事件也能產生。
MouseMove 事件示例
本例演示一個簡單的繪圖應用程序。當任鼠標按鈕按下並拖動時,MouseDown 事件過程和一個相關的 MouseMove 事件協同工作以啓動繪圖。 MouseUp 事件過程禁止繪圖。 要嘗試這個例子,可將代碼粘貼到一個窗體的聲明部分,然後按 F5 鍵,單擊窗體並在鼠標按鈕按下時移動鼠標。
Dim PaintNow As Boolean ' 聲明變量.Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)PaintNow = True ' 啓動繪圖。 End SubPrivate Sub Form_MouseUp (Button As Integer, X As Single, Y As Single)PaintNow = False ' 關閉繪圖。 End SubPrivate Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)If PaintNow ThenPSet (X, Y) ' 畫一個點。 End IfEnd SubPrivate Sub Form_Load()DrawWidth = 10 ' 使用更寬的刷子。 ForeColor = RGB(0, 0, 255) ' 設置繪圖顏色。 End Sub
應用於:
CheckBox 控件
CommandButton 控件
Data 控件
DirListBox 控件
Form 對象、Forms 集合
Frame 控件
Image 控件
Label 控件
ListBox 控件
MDIForm 對象
OptionButton 控件
PictureBox 控件
PropertyPage 對象
TextBox 控件
UserControl 對象

MouseMove相關知識

MouseMove對象表達式

説明具體對象的表達式,可以包含對象的容器。例如,應用程序可以擁有 Application 對象,其中包含 Document對象,而 Document對象又包含 Text對象。

MouseMove控件數組

有一公共名稱、型態、事件過程的一組控件。數組中的每個控件都有唯一索引數,可用來決定是哪個控件識別事件。

MouseMove對象瀏覽器

一個對話框,可在其內檢查對象庫中的內容,以獲得有關對象的信息。

MouseMove對象庫

文件擴展名為 .olb 的文件,向自動化控件(比如 Visual Basic)提供有關可用對象的信息。可用對象瀏覽器檢查對象庫的內容,以獲得有關對象的信息。

MouseMove層疊事件

由事件過程直接或間接調用它自身所引起的一系列事件,也稱為事件的層疊或遞歸。層疊事件過程經常引起運行時錯誤的結果,例如堆棧溢出