No se si esto lo que quieres pero intenta haber que sale...Código: TextPrivate Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Text = "dentrol del frame"End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Text = "dentro del picture"End Sub
Buenas.Crea un proyecto con 1 form y 1 moduloen el form agrega un picturebox y un timer. dejale los nombres genericos, al timer ponle el intervalo que quieras.Luego agrega el siguiente codigo en el modulo:Código: Text Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Type POINTAPI x As Long y As LongEnd Type Public Function isOver(ByRef x As Integer, ByRef y As Integer) As Boolean Dim a As Long Dim coo As POINTAPI a = GetCursorPos(coo) x = coo.x * Screen.TwipsPerPixelX y = coo.y * Screen.TwipsPerPixelY isOver = a End Function y en el formulario el siguiente:Código: Text Private Sub Timer1_Timer() Dim x As Integer, y As Integer Dim RetVal As Boolean RetVal = isOver(x, y) If RetVal = False Then MsgBox "Error", , "+ Error +" Exit Sub End If x = x - Me.Left - 60 y = y - Me.Top - 345 x = x - Picture1.Left y = y - Picture1.Top If (x < 0) Or (x > Picture1.Width) Or (y < 0) Or (y > Picture1.Height) Then Picture1.BackColor = RGB(255, 0, 0) Else Picture1.BackColor = RGB(0, 0, 255) End If End Sub Ejecuta la aplicacion y mueve el mouse sobre el picturebox. Wala No era tan complicado, ahora solo tienes que adaptarlo a tu aplicacion, en el evento mousemove del control activas el timer, luego una vez que salio lo desactivas, para ahorrar un poco de memoria.SaludosEste eshttp://foros.solocodigo.com/index.php?showtopic=26834
Cita de: "Epa" Buenas.Crea un proyecto con 1 form y 1 moduloen el form agrega un picturebox y un timer. dejale los nombres genericos, al timer ponle el intervalo que quieras.Luego agrega el siguiente codigo en el modulo:Código: Text Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Type POINTAPI x As Long y As LongEnd Type Public Function isOver(ByRef x As Integer, ByRef y As Integer) As Boolean Dim a As Long Dim coo As POINTAPI a = GetCursorPos(coo) x = coo.x * Screen.TwipsPerPixelX y = coo.y * Screen.TwipsPerPixelY isOver = a End Function y en el formulario el siguiente:Código: Text Private Sub Timer1_Timer() Dim x As Integer, y As Integer Dim RetVal As Boolean RetVal = isOver(x, y) If RetVal = False Then MsgBox "Error", , "+ Error +" Exit Sub End If x = x - Me.Left - 60 y = y - Me.Top - 345 x = x - Picture1.Left y = y - Picture1.Top If (x < 0) Or (x > Picture1.Width) Or (y < 0) Or (y > Picture1.Height) Then Picture1.BackColor = RGB(255, 0, 0) Else Picture1.BackColor = RGB(0, 0, 255) End If End Sub Ejecuta la aplicacion y mueve el mouse sobre el picturebox. Wala No era tan complicado, ahora solo tienes que adaptarlo a tu aplicacion, en el evento mousemove del control activas el timer, luego una vez que salio lo desactivas, para ahorrar un poco de memoria.SaludosEste eshttp://foros.solocodigo.com/index.php?showtopic=26834 realmente esto es lo que necesito, muy sabio tu codigo.....gracias por tu ayudasaludos
Me alegra q halla servido Aunque avabo de darme cuenta que para el ocxEsto:Código: Text x = x - Me.Left - 60 y = y - Me.Top - 345 Lo cambias por esto:Código: Text x = x - Me.Left y = y - Me.Top Ya que las restas esas son para los bordes del formulario, los cuales el ocx no tiene.Saludos