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