Ciao, sto facendo interagire VB6 con flash in modo da usare quest'ultimo come interfaccia dei miei software in vb.
Mi servirebbe però fare in modo di poterlo draggare.
Mi sono creato così un componente che mi permette di draggare il form, ma se setto la proprietà Backstyle a 0 me lo mette in trasparenza, ma non mi permette di draggarlo come se fosse posto visible=false.
Il codice che uso nel componente è questo:
codice:Option Explicit Dim moving As Boolean Dim xold, yold, storedheight Dim bottomdiag As Boolean, bottom As Boolean, right As Boolean Event MouseDown() Event MouseMove() Event MouseUp() Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) RaiseEvent MouseDown moving = True If moving = True Then yold = Y xold = X End If End Sub Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If moving = True Then Parent.Top = Parent.Top - (yold - Y) Parent.Left = Parent.Left - (xold - X) End If End Sub Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) moving = False End Sub Private Sub UserControl_Paint() UserControl.BackStyle = 0 End Sub
Avevo provato anche con una picturebox e questa funzione:
e funzionava, ma se il form perdeva il focus o se lo draggavo oltre i limiti dello schermo, poi la picturebox riprendeva il suo colore iniziale. Questo è probabilmente dovuto ad un bug noto, ma non c'è proprio nessun modo per risolvere la questione?codice:Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Sub Form_Load() Dim result As Long picdrag.ZOrder result = SetWindowLong(picdrag.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT) End Sub
p.s. Ho provato anche con le etichette, ma non vanno in primo piano rispetto al componente di flash

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando