Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696

    [VB.NET] Grafica avanzata per form

    E' possibile creare delle form personalizzate che funzionino, tanto per fare un esempio, come windows media player o ITunes (senza barra in alto e contorno ma con bordo personalizzato e rotondo)?
    PAZZIA PAZZIA
    PORTAMI VIA!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    beh prova, tanto non dovresti scrivere codice; metti una immagine, togli il bordo e la barra al form, imposti al form il colore trasparente, e vedi cosa viene

    Il problema è che devi gestire gli eventi del form sull'immagine, quindi ridurre ad icona, ingrandire, chiudere, il mousemove per spostare il tuo nuovo form, il resize, e altre cosette. Con vb6 questa era la parte difficile, poichè dovevi anche procedere al subclassing sul form per la gestione degli eventi di windows diretti al form, che pero' essendo inutilizzabile devono essere gestiti in maniera differente. Con vb.net questa parte non ho idea se è necessaria (credo cmq di si), anche se il subclassing è semplice, basta selezionare dal form Overrides e quindi la WndProc, avrai:

    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    ........
    End Sub
    Ans.

  3. #3
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696

    ok

    Per la grafica tutto ok, ho tolto barra e bordo alla form e aggiunto due immagini una sopra e una sotto che mi fanno da cornice (hanno gli angoli smussati e sto ancora lavorando su come fare la trasparenza).

    Per quanto riguarda la gestione degli eventi, a me servirebbe solo che quando si clicca sull'immagine in alto e si trascina il mouse, la finestra si sposta.

    Sto provando ma non esiste un evento tipo 'drag' per la picture... qualche idea?
    PAZZIA PAZZIA
    PORTAMI VIA!

  4. #4
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696

    soluzione

    codice:
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
            myFormDragging = True
            myPointClicked = New Point(e.X, e.Y)
        End Sub
    
        Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
            myFormDragging = False
        End Sub
    
        Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
            If myFormDragging Then
                Dim aMoveToPoint As Point
    
                aMoveToPoint = Me.PointToScreen(New Point(e.X, e.Y))
                '
                ' Adjust the position based on where you started.
                '
                aMoveToPoint.Offset(myPointClicked.X * -1, _
                    (myPointClicked.Y + SystemInformation.CaptionHeight + _
                   SystemInformation.BorderSize.Height) * -1)
                '
                ' Move the form.
                '
                Me.Location = aMoveToPoint
            End If
        End Sub
    PAZZIA PAZZIA
    PORTAMI VIA!

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.