Buenas:
Estoy haciendo un programa el cual le he añadido un form que hara la funcion de menu popup pero lo que quiero es que al clickar sobre el form1 el form2(qu es el menu) aparesca donde el cursor.
como lo puedo hacer??
gracias
Buenas:
Estoy haciendo un programa el cual le he añadido un form que hara la funcion de menu popup pero lo que quiero es que al clickar sobre el form1 el form2(qu es el menu) aparesca donde el cursor.
como lo puedo hacer??
gracias
Hola, para hacer que el formulario se abra en la posicion del mouse, bueno, primero tenes que tomar de algun lado las coordenadas del puntero del raton, pasarlas a una variable publica, declarada en un modulo, y en el evento form_load del form2 colocar:
me.left= variable_left
me.top= variable_top
bien, ahora debes darle un valor a estas variables, precisamente en el mismo evento en el que haces que se abra el formulario, colocas
variable_top = Y
variable_left= X
Vive rapido, muere joven, y tu cadaver sera bello
Suponiendo que sabes como mostrar el form, solo tienes que obtener la posicion del cursor, y decirle al form que aparezca en esa posicion
Veni, Vidi, Vici
jajajaja, 2 respuestas similares casi al mismo tiempo. A eso le llamo casualidad y rapidez![]()
Veni, Vidi, Vici
Código:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Variables Publicas en todo el proyecto,Por ejemplo fX,fY 'Esto lo harias desde un bas fX = X fY = Y End Sub
Ya de ahi en en initialize pones
form2.top = x
form2.left = y
"Yo solo se que entre mas creo saber mas dudas tengo" Pero eso es lo hermoso del conocimiento "El Aprehender"
si ya lo hize y este es el codigo pero si lo comprobais vereis que no funciona por que no son iguales los valores del cursor a los del form.
'Punto del cursor
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim MSG As Variant
'api del cursor
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Sub Timer1_Timer()
On Error Resume Next
Dim Point As POINTAPI
Label1.Caption = Form1.Left '1379
GetCursorPos Point
Form1.Left = Point.X
Form1.Top = Point.Y
End Sub
Logico, las propiedades Left y Top del formulario, aun cambiando la propiedad ScaleMode (que solo afecta las medidas internas de contenedor) se trabajan en Twips y no en Pixeles. Cambia el siguiente codigo por este:
Salu2...Código:Form1.Left = Point.X * Screen.PixelToTwipsX Form1.Top = Point.Y * Screen.PixelToTwipsY
Cada vez que se alinean los planetas me paso de visita por el foro
dx_lib32: Programa juegos en Visual Basic 6.0 y Visual Basic .NET con la potencia de DirectX 8.1
Version 2.2.0 final publicada