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:

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
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?

p.s. Ho provato anche con le etichette, ma non vanno in primo piano rispetto al componente di flash