Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    20

    [VB6] Immagini e disegni su PictureBox

    Ciao a tutti... ho un problema con i picture Box.

    Nel mio programma devo fare una specie di mappa.. mi spiego meglio:

    Nella mia picturebox devo dare la possibilità all'utente di aggiungere o togliere dei pallini che rappresentano degli oggetti in un sistema fisico.
    Sotto ad ogni pallino devo scrivere una stringa che rappresenta l'ID dell'oggetto.

    E fin qua tutto ok.

    Per disegnare i pallini uso la funzione circle, per le scritte creo dinamicamente delle label e le piazzo alle coordinate che mi servono.
    Mi sono accorto però che se piazzo una nuova label i pallini scompaiono. Per ovviare a questo problema prima di disegnare un nuovo pallino cancello l'immagine e tutte le label,
    ricreo le label compresa quella del nuovo pallino e ridisegno tutti i pallini.

    Il problema è sorto quando mi è stata data un'immagine del sistema... l'idea sarebbe quella di avere quest'immagine come sfondo della picturebox e di disegnarci i pallini e le label sopra.

    Per disegnare l'immagine e dimensionarla in maniera corretta ho utilizzato una funzione trovata su questo forum in una discussione di qualche tempo fa.
    La funzione è questa:

    [CODE]
    Public Sub FitPicture(srcImage As StdPicture, dstPicBox As PictureBox)

    Dim pW As Long
    Dim pH As Long
    Dim r As Double

    pW = (dstPicBox.ScaleX(srcImage.Width, vbHimetric, vbTwips))
    pH = (dstPicBox.ScaleY(srcImage.Height, vbHimetric, vbTwips))

    If srcImage.Width >= srcImage.Height Then
    r = pW / dstPicBox.ScaleWidth
    Else
    r = pH / dstPicBox.ScaleHeight
    End If

    dstPicBox.AutoRedraw = True
    dstPicBox.Cls
    dstPicBox.PaintPicture srcImage, (dstPicBox.ScaleWidth - (pW / r)) / 2, (dstPicBox.ScaleHeight - (pH / r)) / 2, pW / r, pH / r
    End Sub
    [\CODE]

    e funziona in maniera perfetta (ringrazio l'autore della funzione).

    Ciò che non riesco a far funzionare è che se disegno prima l'immagine e poi i pallini, l'immagine viene cancellata (e ho lo sfondo bianco con pallini e stringhe)
    viceversa se disegno prima i pallini e poi l'immagine vedo solo l'immagine e le label senza i pallini.

    Come posso fare? Qualcuno ha qualche suggerimento?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Questa proprietà

    dstPicBox.AutoRedraw = True

    deve essere impostata a True all'avvio del programma. Prova ad impostarla dall'IDE e non da codice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    20
    Già fatto... ho impostato l'autoredraw su True dall'IDE e comunque sul Form.Load gliela impongo nuovamente... ma continua a cancellarmi l'immagine....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    20
    Ho scoperto il problema... avevo un cls messo in una funzione..in un punto in cui non doveva esserci. Grazie mille dell'aiuto... risolto

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.