Gérer un clic sur des Image avec en fond un PictureBox

Résolu
nicodev24 Messages postés 5 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 12 août 2009 - 28 févr. 2007 à 15:53
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 28 févr. 2007 à 18:01
[VS 2005 - C#]

Bonjour,
pour une interface graphique interactive, je veux afficher un fond de carte (un département), des icones sur ce fond de carte (villes) et lorsqu'on clique sur une ville, une fenetre s'ouvre avec le nom de la ville cliquée.

voici comment je place mes icones (villes) sur le fond de carte :

// chargement de l'image de fond dans le PictureBox
picFond.Image = Image.FromFile("carte.jpg");

// dans le dessin du PictureBox, affichage des icones
private void picFond_Paint(object sender, PaintEventArgs e)
{
            // charge l'image et la redimensionne
            Image ville;
           
ville
= Image.FromFile("ville.jpg");

            Size szIcone = new Size(30, 30);
            Bitmap b = new Bitmap(
ville
,szIcone);
           
ville
.Dispose();
           
ville
= b;

            Point ptHautGauche = new Point(100, 100);
            e.Graphics.DrawImage(
ville

, ptHautGauche);
}



Pour connaitre la ville cliquée, je récupère la position X et Y par les évenements de clic du
PictureBox
, mais comment relier cette position à la ville cliquée ?

Peux on gérer les évenements clic de souris sur une Image ?
Faut il comparer les
coordonnées du clic
à la position de chaque ville ? Et en cas de chevauchement des villes ?

Merci pour vos réponses sur le forum qui m'ont déjà aidé à en arriver là !

Nicolas

1 réponse

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
28 févr. 2007 à 18:01
Salut, fait comme dans les jeux.. utilise une "Color Map", ç-à-d une 2ème image qui est une version noir et blanc de la première mais les points cliquables eux sont en couleur unie  ( pas de jpg  ), une couleur différente pour chaque villes.  La 2ème image n'est pas affichée par contre elle doit toujours avoir la même taille que celle affichée ce qui permet au moment ou l'utilisateur clique sur la première image de tester la couleur correspondante sur la 2ème avec GetPixel par exemple et donc de savoir sur quelle ville l'utilisateur a cliqué au pixel près.
3
Rejoignez-nous