Hej hopp,, >Finns det inget event i VB får att fånga upp när musen lämnar en kontroll ???? Jamen det är bråttom .... Sitter ju och kodar... Då vill man ha svar igår... För skall man ta det den långa vägen.... SÅ vill man komma igång fort... Kansk detta kan vara till nån hjälp... Jag löste det så här... Och det är snabbt.... Tillräckligt trots att det generar en massa events i onödan... Men det är inte så ofta man är inne och kladdar med musen på stället ifråga... Observera att cmdChange ligger på frame3... Det är nog en bättre lösning. Men man slipper API anrop med ditt alternativ. Jepp men det finns nog med space... Något man saknar. Svårt att göra en "hover" effekt utan den. Eller "highlight'a" en label. >Har ju inte .NET på min arbets dator. Får nog kila hem och titta efter om de implementerat det i VB.NET.OnMouseOut()
Finns det inget event i VB får att fånga upp när musen lämnar en kontroll ????
Svara snabbt...
/peterhSv: OnMouseOut()
Nej
>Svara snabbt...
Annars?
MSSv: OnMouseOut()
Jag formulerade frågan lite dumt... Jag vet att det inte finns ett sådant event. Vad jag egentligen menade är vilket trix´kan man använda för att fånga ett sånt event....
Men detta har jag redan fixxat Tack i alla fall.
/peterhSv: OnMouseOut()
Option Explicit
Private Declare Function ReleaseCapture Lib "user32" () _
As Long
Private Declare Function SetCapture Lib "user32" ( _
ByVal hWnd As Long) As Long
Private Sub Picture1_MouseMove(Button As _
Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
Dim lReturn As Long
Static flagInside As Boolean
If X < 0 Or X > Picture1.Width Or Y < 0 Or Y > Picture1.Height Then
lReturn = ReleaseCapture()
flagInside = False
'Leave eventet
Picture1.BackColor = vbButtonFace
ElseIf flagInside = False Then
lReturn = SetCapture(Picture1.hWnd)
flagInside = True
'Enter eventet
Picture1.BackColor = vbHighlight
End If
End SubSv: OnMouseOut()
Jag vet att jag kunnat använda en toolbar eller det kanske finns en kontroll som ändrar bilden då man drar musen över den... Men som vanligt gillar jag att lösa det själv.. Dessutom är en toolbars knappar alltid kvadratiska tror jag... Jag vill ha en rektangulär knapp....
============================================
Private Sub cmdChange_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If cmdChange.Picture Is ImageList1.ListImages(1).Picture Then
Set cmdChange.Picture = ImageList1.ListImages(2).Picture
End If
End Sub
Private Sub Frame3_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If cmdChange.Picture Is ImageList1.ListImages(2).Picture Then
Set cmdChange.Picture = ImageList1.ListImages(1).Picture
End If
End Sub
/peterhSv: OnMouseOut()
Men om cmdChange ligger nära någon av kanterna kan det hända att bilden fortfarade är densamma. Vilket kan ge ett buggit intryck hos användaren. Har jag råkat ut för.Sv: OnMouseOut()
Men annars får man lägga till en för formen också....
Jag tycker det är kasst att det inte finns ett mouseOut event..
Vad tycker in andra...!
/peterhSv: OnMouseOut()
Har ju inte .NET på min arbets dator. Får nog kila hem och titta efter om de implementerat det i VB.NET.
Mer lämpligt namn enligt min smak vore nog Objekt_MouseExit. Ett Objekt_MouseEnter event kanske inte heller är fel. Men går ju att klara sig utan.Sv: OnMouseOut()
Ja, det finns med.
Går att fixa på samma sätt i VB6 också, men kräver lite mer jobb.
MS