Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336

    [VB6] Componente drag e trasparenza

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    up :master:

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Non c'è proprio nessuno che sappia aiutarmi? Mi basterebbe sapere come creare un componente trasparente, che sta in primo piano e che sia cliccabile.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.