krishou
Messages postés60Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention21 août 20081 16 juil. 2008 à 17:00
A priori, pas moyen d'empêcher le déclenchement de l'évenement sur ta pictureBox uniquement sur la partie non transparente, l'évenement étant sur la pictureBox complète. Par contre tu peux essayer de prendre les coordonnées de ta souris au moment de l'event,puis de vérifier si la couleur correspond à la couleur de fond ( couleur du controle sur lequelle tu as posé ta pictureBox) et donc ne rien faire dans ce cas, ou effecture le traitement dans le cas contraire...
En espérant avoir pu te donner une piste pour résoudre ton problème.
TheMonz
Messages postés4Date d'inscriptionvendredi 29 août 2003StatutMembreDernière intervention18 juillet 2008 18 juil. 2008 à 10:28
Salut
La solution la plus simple est la suivante :
Hérité de la picture Box pour avoir ta propre pictureBox....
Overrider le OnMouseMove...; et ne pas appelé le base.OnMouseMove() dans les cas ou tu ne veux pas lever l'evenement
Apres, pour la gestion de la transparence, il est conseillé de regarder par rapport aux coordonnées de la souris (fourni en paramêtre de l'event OnMouseMove), si le point de ton
image correspondant est transparent ou pas.. se baser sur la couleur se trouvant derrière, c'est une solution, mais je ne trouve pas cela très "propre"...
Voila, normalement avec ces infos, tu devrais pouvoir réaliser ce que tu veux en moins d'une heure !
cs_nonold
Messages postés22Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention23 octobre 2008 22 juil. 2008 à 11:24
J'y ai pensé seulement il y a un .. hic.
Je souhaite m'en servir pour detecter sur quel region je suis sur une carte de france... resultat la partie transparente d'une region laisse apparaitre une autre region .. de la meme couleur ... :s
remarque > je peu faire une couleur par region ... mais ca deviens assez sale comme solution je trouve.
je suis pas specialement ferme sur l'utilisation de la picture box
Actuelement je cherche du coté des sprites .. il me semble qu'il y a des gestions assez poussé.
cs_nonold
Messages postés22Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention23 octobre 2008 28 juil. 2008 à 09:49
En fait la detection de couleur etant tres precise on peu jouer sur des valeurs qui se voient pas a l'oeil nue.
par exemple du 255 255 255 avec du 255 255 254 et ca suffit pour faire la difference ;)
Donc solution certe pas tres 'propre' mais fonctionnel :P
Vous n’avez pas trouvé la réponse que vous recherchez ?
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 27 nov. 2008 à 18:10
Salut !
Tu veux dire que tu as 1 PictureBox par région de france et que ces PicturesBox se supperposent les uns aux autres pour afficher une carte complete de la france ?
Faut absolument pas faire comme ca, c'est trop la galère à gérer, ca te fait des objets lourds en mémoire pour pas grand chose, le gif c'est de mauvaise qualité (si c'est juste pour de la transparence, préfère le PNG 32Bit, windows gérant assez mal les autres PNG avec transparence dans certains cas).
Une seule picture box contenant la carte complète de france me semble beaucoup plus indiquée.
Tu créer un polygone pour chaque région de france (tableaux des points constituant le polygone).
Ensuite, sur le PictureBox contenant la carte complete, tu t'abonne à l'évènement MouseMove, ou tu dérives le PictureBox, comme tu veux.
Via une fonction mathématique pas très compliquée que tu trouvera facilement sur le net, tu détermine si ta souris est à l'interieur du polygone.
En stockant le dernier polygone sur lequel tu es, tu peux donc créer un nouvel évènement : OnPolygonEnter
Déclenché par le MouseMove, si tu détecte que tu n'est pas dans le même polygone qu'au passage précédent, c'est que tu viens d'entrer dans un nouveau polygone.
L'avantage de cette méthode, c'est qu'elle répond directement à ta problématique d'afficher le contour de la région, en effets, sur l'objet Graphics, utilisé pour faire des dessins, il y a une superbe méthode DrawPolygon() qui prend en paramètre un crayon et .... un polygone, pratique non ?
Le travail c'est la santé, ne rien faire c'est la préserver !!!
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 27 nov. 2008 à 18:12
Hum, je viens seulement de voir que ce post date de juillet dernier, je suis pourtant pas remonté loin dans les messages du forum, ca signifie que ce forum n'est quasi plus visité ??
Le travail c'est la santé, ne rien faire c'est la préserver !!!