raPhaeL, σ' ευχαριστώ για το καλωσόρισμα, το ενδιαφέρον και την άμεση απόκριση. Διαπίστωσα πως η απάντησή σου είναι εύστοχη σύμφωνα με τα λεγόμενά μου. Πρέπει όμως να διευκρινίσω:
Στο συνημμένο project κάνεις επικόλληση ενός picturebox σε ένα άλλο picturebox με χρήση διαφανούς χρώματος. Όμως και πάλι το Destination PictureBox δεν έχει διαφανές φόντο, το οποίο είναι και το ζητούμενό μου.
Να γίνω πιο συγκεκριμένος:
Προσπαθώ να φτιάξω ένα πρόγραμμα που να προσομοιώνει την κίνηση των πλανητών του ηλιακού συστήματος. Χρειάζομαι ελεγκτήρια εικόνας που θα αναπαριστούν πλανήτες. Άρα χρειάζομαι μία τετράγωνη εικόνα σχεδιασμένη μόνο στην περιοχή του κυκλικού δίσκου που περιέχει και τα υπόλοιπα pixel να είνα διαφανή. Η εικόνα αυτή θα κινείται. Άρα δεν μπορώ να κάνω διαρκώς επικόληση με διαφανές χρώμα. Πρέπει το ίδιο το ελεγκτήριο της εικόνας να υποστηρίζει διαφανές φόντο.
Μία έμμεση λύση που φαντάζομαι είναι να μπορώ να σχεδιάζω ένα picturebox, να το αποθηκεύω στο σκληρό σε μορφή όπου υποστηρίζει διαφανές φόντο (gif?) και στη συνέχεια να φορτώνω την εικόνα που αποθήκευσα σε ένα ελεγκτήριο image όπου υποστηρίζεται το διαφανές φόντο. Κάτι τέτοιο όμως πρέπει να γίνεται σε χρόνο εκτέλεσης διότι θέλω να υπάρχει η δυνατότητα ο χρήστης να μπορεί να ορίζει το χρώμα του πλανήτη και την ακτίνα του. Άρα πρώτα θα μου δίνει ο χρήστης το χρώμα και τη διάσταση και μετά θα σχεδιάζεται ο πλανήτης (διότι αν ήταν για το χρόνο σχεδίασης θα έφτιαχνα τις εικόνες στο Photoshop και θα τις φόρτωνα απευθείας). Σε αυτήν την περίπτωση, λοιπόν, το ζητούμενό μου είναι να σχεδιάζω και να αποθηκεύω αρχεία φωτογραφίας με διαφανές φόντο.
Αυτό βέβαια θα μου λύσει το ένα από τα δύο προβλήματά μου.
Ένα δεύτερο πρόβλημά μου είναι:
Θέλω να μπορώ κατά το χρόνο εκτέλεσης όπου ο πλανήτης θα κινείται, να σχεδιάζω επάνω σε ένα ελεγκτήριο εικόνας την τροχιά του. Κι αυτό ώστε να μπορεί ο χρήστης να ορίζει αν η τροχιά του πλανήτη θα διαγράφεται ή όχι, και να μπορεί να αλλάζει κάτι τέτοιο όποτε θέλει. Έτσι θέλω να σχεδιάζω την τροχιά του κάθε πλανήτη σε διαφορετικό ελεγκτήριο και να μπορώ να εμφανίσω και δύο και τρία ελεγκτήρια ταυτόχρονα χωρίς το φόντο του ενός να επισκιάζει όλα τα άλλα. Σκέφτομαι κάτι σαν
Dim Planet(1 to 10) as PlanetType (που θα έχω ορίσει)
Dim PlanetPathPic(1 to 10) as PictureBox?
και με έναν Timer να σχεδιάζω
For n = 1 to 10
Planet(n).DrawPath = True then PlanetPathPic(n).Pset ...
και αν ο χρήστης δε θέλει να φαίνεται η τροχιά π.χ. του πλανήτη Planet(m) θα δίνω την εντολή
PlanetPathPic(m).visible = False. (αντίστοιχα PlanetPathPic(m).visible = True αν θέλει).
Οπότε μία έμμεση λύση, όπως προανέφερα, με σχεδιασμό σε PictureBox, αποθήκευση σε μορφή gif στο σκληρό και φόρτωση σε ελεγκτήριο Image δε βοηθάει. Εδώ χρειάζομαι ένα ελεγκτήριο που να μπορώ να σχεδιάζω και να έχει διαφανές φόντο.
Οποιαδήποτε ιδέα - παρατήρηση - επισήμανση - ...θα με βοηθούσε πολύ
Ευχαριστώ
Υ.Γ. Να πω πως το TransparentBlt, αν και δεν ήταν αυτό που έψαχνα, δεν το γνώριζα και μου δημιουργεί την απορία: Είναι η δεύτερη φορά που μου δίνει κάποιος σε ερώτησή μου μία απάντηση με συνάρτηση API. Που μπορώ να κάνω κι εγώ μία τέτοια αναζήτηση σε βιβλιοθήκες συναρτήσεων; Και ακόμη περισσότερο: Στο API Viewer φορτώνω συναρτήσεις αλλά 1. πώς μπορώ να ξέρω τι κάνουν; 2. πώς μπορω να ξέρω με ποια σύνταξη εντολών λειτουργούν;