Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di dd80
    Registrato dal
    Mar 2004
    Messaggi
    26

    Simulazione spostamento form

    Vorrei spostare un form.
    la cui proprietà bordstyle=0
    come titolo andrò ad utilizzare una label.
    nel momento in cui effettuo un click su quest'ultima
    vorrei simulare lo spostamento prima di effettuare il vero spostamento.

    Per me è difficile da spiegare...

    ho pensato:
    Nel momento in cui vado a clickare sulla label di aprire un form con dimensioni identiche, a questo punto effettuare lo spostamento, una volta rilasciato il pulsante del mause il form iniziale deve posizionarsi nella nuova posizione.
    Fino a qui ci sono, riesco a muovere il secondo form dopo aver clickato sulla label del primo.

    Il mio problema ora è la simulazione grafica del form di spostamento.
    Cioè come vaccio a simulare graficamente uno spostamento?

    Ho pensato di prelevare l'immagine del form e metterla in una picturebox. questa picturebox renderla grande quanto lo schermo e posizionarla al punto (0:0), sempre dello schermo, e quindi successivamente spostare solamente il form.
    Il problema è che fa cagare perchè mi fa una marea di righe e non c'è un refresh immediato dell'immagine (FA CAGARE!).
    Avete altre idee per risolvere la gestione grafica?


    Grazie
    L?esperienza è senza alcun dubbio la base di tutto il sapere...
    (Kant)

  2. #2
    non fai prima ad utilizzare la label come barra del form...mi spiego...fai gestire a windows il trascinamento, quando l'utente clicca sulla label...è una cavolata....utilizza l'API SendMessage con WM_CAPTION e passandogli come handle quella della label...(dovrebbe essere così, poi magari ti posto il codice di conferma...)
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  3. #3
    saresti pregato di specificare linguaggio e versione
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    Utente di HTML.it L'avatar di dd80
    Registrato dal
    Mar 2004
    Messaggi
    26
    Utilizzo VB6 come linguaggio!
    Cmq non capisco la gestione con la label.
    potresti chirirmi meglio cosa dovrei fare?
    Ciao
    L?esperienza è senza alcun dubbio la base di tutto il sapere...
    (Kant)

  5. #5
    aggiungi una label al, mettendola in alto, simulando la barra del titolo...
    poi in un modulo
    codice:
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function ReleaseCapture Lib "user32" () As Long
    Public Const WM_NCLBUTTONDOWN = &HA1
    Public Const HTCAPTION = 2
    e poi nel form
    codice:
    Public Sub DragForm()
        ReleaseCapture
        SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
    End Sub
    
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
        'drag del form
        If Button = vbLeftButton Then _
            DragForm
    End Sub
    
    Private Sub lblCaption_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
        If Button = vbLeftButton Then Form_MouseMove Button, Shift, x, y
    End Sub
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  6. #6
    Utente di HTML.it L'avatar di dd80
    Registrato dal
    Mar 2004
    Messaggi
    26
    Grazie 1000!
    Funziona e proprio quello che cercavo di fare!
    ...
    Ciao!
    L?esperienza è senza alcun dubbio la base di tutto il sapere...
    (Kant)

  7. #7
    Utente di HTML.it L'avatar di dd80
    Registrato dal
    Mar 2004
    Messaggi
    26
    Scusami un attimo.
    Allora potresti farmi il punto di cosa fanno realmente gli eventi e altro per capire il funzionamento?
    MouseMove ok!
    DragForm: ?
    ReleaseCapture e SendMessage: ?
    Poi con sendMessange cosa si puo fare?
    L?esperienza è senza alcun dubbio la base di tutto il sapere...
    (Kant)

  8. #8
    SendMessage può fare ogni cosa...praticamente invia messaggio di ogni tipo, ad ogni cosa, e siccome l'architettura di windows si gestisce con messaggi, puoi fare tutto...è un po difficile da capire, se non sai come funziona windows a livello basso...
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  9. #9
    Utente di HTML.it L'avatar di dd80
    Registrato dal
    Mar 2004
    Messaggi
    26
    Il mio livello è proprio basso lo sapevo!

    ma informazioni in merito giusto per alzare il mio livello e per evitare di fare cose inutili..

    Cia..
    L?esperienza è senza alcun dubbio la base di tutto il sapere...
    (Kant)

  10. #10
    io non intendevo dire che il tuo livello è basso, ma che le funzioni SendeMessagge (API) lavorano a livello basso!

    praticamente windows fa dialogare tra di loro i componenti tramite dei messaggi, inviati dalle API di messaggistica (SendMessage, PostMessage, PostQuitMessage....) Ad usempio quando tu clicchi su di una finestra, windows invia un messaggio di click, (WM_CLICK), alla finestra e poi il tuo eseguibile genera l'evento Form_Click...
    ci sono svariatissimi messaggi...che non sto qui a spiegarteli...

    Eccoti degli esempi
    codice:
    'Chiudere una finestra
    Public Const WM_CLOSE = &H10 'Nel modulo
    SendMessage Me.hWnd, WM_CLOSE, 0&, 0&
    
    'Aprire una ComboBox:
    Const WM_USER = &H400 'Nel modulo
    Const CB_SHOWDROPDOWN = (WM_USER + 15)
    SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, 1, 0&
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

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.