包含vb點虐 鼠標雙擊事件的詞條

VB中怎樣模擬鼠標雙擊操作?

當然可以啊。

超過十年行業(yè)經(jīng)驗,技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都做網(wǎng)站、網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,成都小程序開發(fā),微信開發(fā),App定制開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

使用API函數(shù)mouse_event可以模擬鼠標事件,比如左鍵單擊、雙擊和右鍵單擊等。這個實例利用此函數(shù)產(chǎn)生了十分有趣的效果,無論鼠標處于屏幕的任何位置,每隔一秒程序會使鼠標在那個位置單擊或雙擊一次,這會給我們造成什么樣的混亂呢?試一試就知道了。

先在程序中加入如下的聲明后,就能引用mouse_event函數(shù):

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)

其中各個參數(shù)的意義如下表所示:

參數(shù) 意義

dwFlags Long,下表中標志之一或它們的組合

dx,dy Long,根據(jù)MOUSEEVENTF_ABSOLUTE標志,指定x,y方向的絕對位置或相對位置

cButtons Long,沒有使用

dwExtraInfo Long,沒有使用

dwFlags常數(shù) 意義

MOUSEEVENTF_MOVE H1,移動鼠標

MOUSEEVENTF_LEFTDOWN H2,模擬鼠標左鍵按下

MOUSEEVENTF_LEFTUP H4,模擬鼠標左鍵抬起

MOUSEEVENTF_RIGHTDOWN H8,模擬鼠標右鍵按下

MOUSEEVENTF_RIGHTUP H10,模擬鼠標右鍵抬起

MOUSEEVENTF_MIDDLEDOWN H20,模擬鼠標中鍵按下

MOUSEEVENTF_MIDDLEUP H40,模擬鼠標中鍵抬起

MOUSEEVENTF_ABSOLUTE H8000,標示是否采用絕對坐標

程序中我們這樣使用mouse_event函數(shù):

1、這里是鼠標左鍵按下和松開兩個事件的組合即一次單擊:

mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

2、模擬鼠標右鍵單擊事件:

mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0

3、兩次連續(xù)的鼠標左鍵單擊事件 構(gòu)成一次鼠標雙擊事件:

mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

如上面所示如果我們要使用兩個dwFlags常數(shù)的組合時,可以用Or將其連接起來。本例中我們把dx,dy參數(shù)都設(shè)為0,是指每次模擬事件的位置是鼠標的當前位置,dx,dy在沒有使用MOUSEEVENTF_ABSOLUTE標志時是相對于鼠標當前位置的坐標,如果設(shè)置為使用絕對坐標,則dx,dy是相對于屏幕的坐標。

然后把這些語句放在Timer控件的Timer事件中,就能實現(xiàn)每一定間隔模擬一次鼠標事件了。

說明:我不是很會VC,所以只給出VB里面調(diào)用得方法。抱歉。

在VB中,表示鼠標雙擊的事件名是?

DblClick

當在一個對象上按下和釋放鼠標按鈕并再次按下和釋放鼠標按鈕時,該事件發(fā)生。

對于窗體而言,當雙擊被禁用的控件或窗體的空白區(qū)域時,DblClick 事件發(fā)生。對于控件而言,DblClick 事件在以下情形下發(fā)生:

用鼠標左鍵雙擊控件。

雙擊 Style 屬性設(shè)置為 1(Simple) 的 ComboBox 控件中的項目,或者在 FileListBox 、 ListBox 、DBCombo 或 DBList 控件中的項目。

vb鼠標雙擊怎么避免觸發(fā)單擊

這種情況是無法避免的,因為雙擊是由兩次單擊組成的,如果你要求系統(tǒng)只響應(yīng)雙擊事件不響應(yīng)單擊事件,那么系統(tǒng)在接收到鍵盤發(fā)來的一次單擊動作時,它就會暫時停頓下來,因為它不知道緊接著會不會還有一次單擊動作,如果有就是雙擊,如果沒有就是單擊。這個過程雖說是“一眨眼”,但也足以使單擊事件產(chǎn)生明顯的延時(舉個極端的例子:假如你把雙擊的時間間隔設(shè)為10秒,那么即使沒有雙擊,控件的單擊事件也要在10秒后才觸發(fā)?。?,會嚴重影響用戶體驗,所以系統(tǒng)不可能為了雙擊事件而自動屏蔽單擊事件的。因此,通常情況下,單擊事件和雙擊事件最好不要同時使用,也就是說用了單擊就不要再用雙擊,反之用了雙擊也不要再用單擊。

vb鼠標右鍵雙擊事件

先說明幾點:

1.不是所有的對象,都有雙擊事件(zhangfeizimo在前面說過了)

2.支持雙擊事件的對象,在觸發(fā)這個事件時,并不識別是不是右鍵

3.能識別右鍵的事件,不區(qū)分是單擊還是雙擊

所以,如果用系統(tǒng)的自帶單一事件,是不能直接完成你想的目的

不過,可以變通,將幾個事件結(jié)合起來,就可以實現(xiàn),看看下面的方法:

Dim

LastButton

As

Integer

Private

Sub

Form_DblClick()

If

LastButton

=

2

Then

Text1.Text

=

2

End

If

End

Sub

Private

Sub

Form_MouseUp(Button

As

Integer,

Shift

As

Integer,

X

As

Single,

Y

As

Single)

LastButton

=

Button

End

Sub

本文題目:包含vb點虐 鼠標雙擊事件的詞條
路徑分享:http://bm7419.com/article6/ddephig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站制作、品牌網(wǎng)站設(shè)計、全網(wǎng)營銷推廣小程序開發(fā)、網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站