No se si esto lo que quieres pero intenta haber que sale...realmento no es lo que quiero.Código: Text
Private 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
:comp:
Buenas.realmente esto es lo que necesito, muy sabio tu codigo.....
Crea un proyecto con 1 form y 1 modulo
en 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 Long End 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 :P
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.
Saludos
Este es
http://foros.solocodigo.com/index.php?showtopic=26834 (http://foros.solocodigo.com/index.php?showtopic=26834)
saludos y gracias a la vez, realmente esta es la solucion y te felicito por el analisis de tu codigo y dejame decirte que eso es lo que necesita tambien para lo de mi OCX.Cita de: "Epa"Buenas.realmente esto es lo que necesito, muy sabio tu codigo.....
Crea un proyecto con 1 form y 1 modulo
en 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 Long End 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 :P
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.
Saludos
Este es
http://foros.solocodigo.com/index.php?showtopic=26834 (http://foros.solocodigo.com/index.php?showtopic=26834)
gracias por tu ayuda
saludos
Me alegra q halla servido :Dgracias tu solucion fue efectiva, pero ahora nacesito preguntarte asi como la funcion de la API GetCursorPos, para obtener la posicion del puntero habra una para posicionar.
Aunque avabo de darme cuenta que para el ocx
Esto: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