VB的滑鼠事件,VB事件的滑鼠事件

時間 2021-05-07 20:00:55

1樓:匿名使用者

在通過宣告區加入以下**:

private declare function setcursorpos lib "user32" (byval x as long, byval y as long) as long

private declare sub mouse_event lib "user32" (byval dwflags as long, byval dx as long, byval dy as long, byval cbuttons as long, byval dwextrainfo as long)

加入按鈕的click事件

private sub command1_click()

dim x as long 『想單擊區域的x座標,以畫素為單位

dim y as long『想單擊區域的y座標,以畫素為單位

x = 10

y = 10

setcursorpos x, y

mouse_event mouseeventf_leftdown or mouseeventf_leftup, 0, 0, 0, 0

end sub

2樓:

private sub command1_click()call command2_click

end sub

private sub command2_click()label1.caption = "單擊的"

end sub

這個就是按了按鈕1,等於按了2

vb事件的滑鼠事件

3樓:軍笑卉

滑鼠事件是visual basic程式設計中最常用到的事件,多數控制元件都支援滑鼠操作,因此對鼠 標事件進行程式設計是非常重要的。

滑鼠事件主要有以下幾種:

click:單擊事件,即單擊滑鼠時發生的事件。

dblclick:雙擊事件,即雙擊滑鼠時發生的事件。

mousedown:滑鼠按下時發生的事件。

mouseup:滑鼠抬起時發生的事件。

mousemove:滑鼠移動時發生的事件,對某控制元件的此事件進行程式設計,則當滑鼠移過此控制元件時就會觸發此事件,執行其相應**。

滑鼠事件的發生順序是:

(1)首先發生的是mousemove事件,當滑鼠移動時,將會連續觸發moousemove事件。

(2)當滑鼠按下時發生mousedown事件。

(3)滑鼠鬆開時發生mouseup事件。

(4)如果按住的是滑鼠左鍵,則click事件在mouseup之後發生。

雙擊滑鼠時事件發生順序是:

(1)當滑鼠按下時發生mousedown事件。

(2)滑鼠鬆開時發生mouseup事件。

(3)單擊滑鼠發生click事件。

(4)雙擊滑鼠發生dblclick事件。

(5)完成滑鼠雙擊時發生mouseup事件。

在上面所列出的這些事件中,最常用到的就是click事件和dblclcik事件,mousemove和 douseup事件不太經常用,一般用在需要對滑鼠進行處理的地方。如:對於最常見的命令按鈕,通常情況下我們使用click事件;而在進行畫圖的時候, 例如畫一條直線,必須先按住滑鼠左鍵,然後拖動滑鼠,再鬆開滑鼠。

在此過程中,首先觸發mousedown事件,我們可以在此事件中記錄滑鼠的開始位置, 再對mouseup事件進行程式設計,以記錄滑鼠的結束位置;其中還要對mousemoove事件進行程式設計,以在移動過程中進行處理畫圖操作,而不是 click或dblclick事件。

滑鼠的單擊事件定義如下:

sub click()

end sub

雙擊事件定義如下:

sub dblclick()

end sub

對於mousedown和mouseup事件,它們的定義要複雜的多。對於mouseup事件,其定義如下:

private sub labell _mouseup(button as integer, shift as integer, x as single, y as single)

end s

在上面的引數中,button as integer定義了引數button,該引數是用於確定按下的是滑鼠的左鍵,右鍵,還是中鍵,其取值如下表所示。

常量  數值 說明

vbleftbutton  1   按下滑鼠左鍵

vbrightbutton   2   按下滑鼠右鍵

vbmiddlebutton  4   按下滑鼠中鍵

shift as integer定義整型引數shift,該引數用於確定鍵盤上shift鍵、ctrl鍵、alt 鍵是否被按下,其取值如下表所示。 常量 數值 說明 vbshiftmask 1 按下shift鍵 vbctrlmask 2 按下ctrl鍵 vbaltmask 4 按下alt鍵 要判斷是哪個鍵被按下了,要由相應的程式**來完成。如:

private sub labell mouseup(button as integer,shift as integer,x as sing , y as single)

if button=vbrightbutton then

msgbox(「你按下去的是滑鼠右鍵」)

end if

end sub

此段**在滑鼠抬起時執行,程式中用if條件判斷語句來判斷究竟是哪個鍵被按

當button=vbrightbutton成立時,即滑鼠右鍵被按下,這時可以執行相應的操作。

private sub labell mouseup(button as integer,shift as integer,x as sin2 single)

if shift=2 then

msgbox(「單擊滑鼠時ctrl鍵被按下」)

endif

end sub

這段**在執行過程中判斷當滑鼠抬起時鍵盤上哪個鍵被按了下去。如上表說明,當shift值為2時,表示ctrl鍵被按了下去。

由上面的例子可以看出我們可以對滑鼠進行一些判斷,然後執行一些特殊操作,但用起來通常比較麻煩。

vb 滑鼠移動事件

4樓:匿名使用者

來的晚,幫頂頂,樓上**很好,很強大.嘿嘿`~!!

不過有點侷限,mousemove事件只侷限在form中.

建議通過getcursorpos api來獲取滑鼠座標.

從而判斷,滑鼠是否移動

呵呵,根據你要求寫了下面**,你試試

private declare function getcursorpos lib "user32" (lppoint as pointapi) as long

private type pointapi

x as long

y as long

end type

dim nowpos as pointapi '用來紀錄滑鼠停止時座標

const handletime = 20 '20分鐘後處理

dim nowcount as integer '用來紀錄滑鼠停止了多久

private sub form_load()

timer1.interval = 1000 '1秒檢測一次

timer1.enabled = true

timer2.interval = 60000 '1分鐘一次 timer時間

timer2.enabled = false

getcursorpos nowpos

nowcount = 0

end sub

private sub timer1_timer()

dim tmppos as pointapi

getcursorpos tmppos

if tmppos.x = nowpos.x and tmppos.y = nowpos.y then

if not timer2.enabled then timer2.enabled = true

else

timer2.enabled = false

nowcount = 0

end if

nowpos = tmppos

me.caption = "當前滑鼠座標是:" & nowpos.x & "," & nowpos.y & "滑鼠已經靜止了" & nowcount & "分鐘了哦"

end sub

private sub timer2_timer()

nowcount = nowcount + 1

if nowcount = handletime then msgbox "你已經20分鐘沒動過了哦,退出我嗎 ?"

end sub

vb裡的mousemove事件舉例

5樓:四舍**入

這是滑鼠移動時發生的事件,如:

private sub label1_mousemove(button as integer, shift as integer, x as single, y as single)

msgbox "你點到我啦!"

end sub

當滑鼠移動到這個標籤控制元件的時候,就彈出對話方塊

6樓:匿名使用者

mousemove事件就是滑鼠在物件上移動private sub command1_mousemove(button as integer, shift as integer, x as single, y as single)

me.cls

print "滑鼠在按鈕上移動" & nowend sub

private sub form_mousemove(button as integer, shift as integer, x as single, y as single)

me.cls

print "滑鼠在窗體移動" & nowend sub

7樓:昔日清風昨日雨

放上一個picture控制元件,然後

private sub picture1_mousemove(button as integer, shift as integer, x as single, y as single)

是當前滑鼠所在點的座標,&hff&是顏色

end sub

滑鼠在picture控制元件上移動時會畫出一條紅線若要滑鼠按住左鍵後才畫出紅線,可以加個判斷if button <> 1 then exit sub

VB的事件驅動程式設計機制的含義是什麼

你所寫的 都是有某個事件來啟用執行的,比如寫在 sub command1 click 中的 就需要在command1被click之後才執行。和下面的程式就不一樣 程式整體就在一個迴圈中 while cmd exit select case cmd case help call help case i...

vb中的if語句,VB中的If語句

荀曾顏念雁 檢測事件是在文字框中的change事件中判斷,也就是說只要文字框有改變就檢測!如果把其中的 and改寫成 or就可以判斷其中一個文字是否為空!private subtext1 change 判斷文字框最快的速度還是判斷它的長度是否為0iflen text1.text 0 andlen t...

vb 整除的問題,VB 整除的問題

private sub command1 click dim n as integer,sum as longn cint text1.text if n 1000 or n 1 thenmsgbox 輸入數值超範圍 exit sub end if for i 0 to n step 3sum su...