我有一個圖像,我已經在MouseMove中編寫了代碼來照亮它。這正在做我想要的是,當鼠標離開圖像的亮點消失,但我似乎無法找到任何事件,將做到這一點。我正在使用visual basic 6.0。我已經嘗試了mouseup和down事件,但他們不符合我的要求。熱門虛擬形象vb6中的鼠標事件
感謝
我有一個圖像,我已經在MouseMove中編寫了代碼來照亮它。這正在做我想要的是,當鼠標離開圖像的亮點消失,但我似乎無法找到任何事件,將做到這一點。我正在使用visual basic 6.0。我已經嘗試了mouseup和down事件,但他們不符合我的要求。熱門虛擬形象vb6中的鼠標事件
感謝
沒有像在VB6事件(儘管VB.Net有MouseLeave)。您需要在表單的MouseMove事件中(也可以是任何容器控件)執行一些操作。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
' Unhighlight the image'
End Sub
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
' Highlight the image'
End Sub
您還可以將想要模擬mouseleave事件的圖像放在更大的圖片中。這樣,當您離開內部照片(較小)時,您將點擊外部照片的鼠標移動事件。此外,如果使用框架或標籤而不是其他圖片,則此方法可行。
您始終可以繼承控件的子類。描述如何去做的Here's an article。
對於Marco Bellinaso寫的這個確切的目的,有一個很好的小ocx控件,他是一位備受推崇的作者,也是當時VB社區內容豐富的貢獻者。
該控件被稱爲「MB MouseHelper」。您可以從devx.com下載http://www.devx.com/vb2themax/CodeDownload/19735。
alt text http://img25.imageshack.us/img25/3985/screencap20100809110523.jpg
有兩個問題與使用VB內置的MouseMove
事件,使這個控制是有用的:
MouseMove
事件+1中提及的[link](http://www.codeproject.com/Articles/6844/Adding-MouseLeave-MouseHover-events-to-VB-Control) MouseMove事件的問題。許多程序員沒有意識到這一點。將鼠標快速移出該區域將不會觸發包含控件的MoveMove,並且該控件的懸停屬性將永遠不會被刪除。 – Jeff 2016-11-05 14:16:28
如果您使用mouseMove事件,需要關心的一件事是在您處於IN控件中時引發一個標記,並在OUT時突出顯示另一個標記以避免在每個鼠標上重複相同的操作XY變化
私人小組Form_MouseMove(按鈕作爲整數,移作爲整數,X爲單,Y爲單)
'如果imageIsHighlighted =真,那麼
' Unhighlight圖像」
'imageIsHighlighted =假
' END IF
結束子
私人小組Image1_MouseMove(按鈕作爲整數,移位作爲整數,X爲單,Y爲單)
「如果imageIsHighlighted =假,則
'突出顯示圖像'
'imageIsHighlighted =真
「END IF
結束子
似乎是唯一的選擇,我現在將圖像陣列所以有點重碼 – PUG 2010-08-06 11:49:35
此方法不工作的可靠性。如果您快速移動鼠標離開包含圖像的按鈕(Image1),程序將錯過MouseMove事件,並且您的按鈕將留下懸浮屬性。您需要在窗口中進行子分類,如同樣在@ pm_2 – Jeff 2016-11-05 14:29:05