Newsgroup: it.comp.lang.visual-basic
Titolo: Far muovere due form insieme???

Vi prego di aiutarmi, sto facendo un progetto in VB6 per la mia tesi di
diploma e ho bisogno di sapere come posso, una volta che ho visualizzato
due form sullo schermo, farsi che spostando la prima la seconda si
sposti di conseguenza (un pò come la play list del WinAmp). Ho cercato
negli eventi della form ma non ho trovato nulla... 
Vi prego di aiutarmi al + presto 
Grazie dell'attenzione
Mirko

 ha scritto nel messaggio
news:389568CB...@libero.it...


 wrote in message 389568CB...@libero.it...


Prova così:
Dim x As Long, y As Long
Private Sub Form_Load()
    Form2.Show
    x = Form1.Left
    y = Form1.Top
End Sub
Private Sub Timer1_Timer()
    If x <> Form1.Left Then
        Form2.Left = Form2.Left + (Form1.Left - x)
        x = Form1.Left
    End If
    If y <> Form1.Top Then
        Form2.Top = Form2.Top + (Form1.Top - y)
        y = Form1.Top
    End If
End Sub
in questo modo, quando muovo Form1 si muove anche Form2. L'intervallo del
timer deve essere abbastanza basso. Più sarà basso più il movimento sembrerà
lineare.

 sposti di conseguenza (un pò come la play list del WinAmp).
Ti sconsiglio di utilizzare il subclassing se non sei già esperto.
Invece potresti provare un trucco: Elimina la caption dalle form e
sostituiscila con una picturebox con attributo vbaligntop su cui potrai
disegnarti la caption che preferisci, ridisegnandola al variare delle
dimensioni nell'evento resize.
A questo punto ti gestisci nella picturebox l'evento mousedown per attivare
un flag e salvarti la posizione del mouse, e il mouseup per disattivarlo.
Nella mousemove, se il flag è attivo, sposti la form padre e anche quella
figlia, basandoti sull'offset della posizione del mouse rispetto a quella
che ti sei salvata nella mousedown.
Per sapere dove sta il mouse, usa l'API GetCursorPosition. Su
http://members.xoom.it/CesareRizzi
 troverai sicuramente tutte le informazioni in merito a questa API.
Ciao
*Roby*

 Ma bisogna proprio usare il timer ??
io se dovessi farlo cercherei una soluzione migliore, pero' e' la cosa +
semplice che m'e' venuta in mente e funziona.

semplice che m'e' venuta in mente e funziona.
La soluzione ottimale sarebbe, ovviamente, quella di subclassare la
finestra che, spostandosi, deve far spostare anche la seconda
finestra.
Se invece preferisci evitare il subclassing, la soluzione piu' idonea
e' quella di eliminare la caption della prima form settando lo style
in modo appropriato, sostituendo la caption "reale" con una "fittizia"
(che puo' essere una label o una picture, per esempio).
In questo modo tramite l'evento "MOUSEMOVE" del controllo che simula
la caption, puoi capire quando l'utente desidera muovere la finestra,
e quindi puoi agire in modo tale che muova sia la prima finestra che
la seconda.
--
C'ya,
 Benjamin Reilly
  |
  |
'/|\'
\\O//
//"\\
'\ /'
________________________________________TagLine___
"Quanti Angeli danzano sulla punta di uno spillo?"

 wrote in message
1saZODjBF41fP1...@4ax.com...


credere che lo si stia trascinando per la barra del titolo, mi pare WM_CAPTION
Non serve cosa..?
Come intercetti l'evento di "moving" della prima finestra..?
.. O la Subclassi, oppure simuli la caption.
--
C'ya,


Scelgo la seconda busta. In effetti avevo in mente un form senza caption


Scelgo la seconda busta. In effetti avevo in mente un form senza caption
Ehe... Per questo non avevo capito "Non serve".. Da come avevi
risposto al msg sembrava che volessi dire che non servisse nessuna
delle due strade proposte. ^_-
