Zone cliquable sur PictureBox

Signaler
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
-
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
-
Bonjour,
Je voudrais prendre une action en fonction de l'endroit où on a cliqué dans une PictureBox
[list][*] soit connaître les coordonnées x,y de l'endroit où on a cliqué
[*] soit ajouter en superposition sur la PB "un certain nombre" de boutons
le problème dans ce cas est que je ne connais pas à l'avance le nombre de boutons
d'où question subsidiaire : peut-on générer des boutons at run time ?/list
Merci d'avance pour vos réponses.

38 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
soit connaître les coordonnées x,y de l'endroit où on a cliqué

ce sont le X et le Y de l'évènement Mouse_down (ou Mouse_up, d'ailleurs)
d'où question subsidiaire : peut-on générer des boutons at run time ?

Si "at run time" est "dynamiquement" : Oui.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
2
Merci pour la réponse rapide
Si "at run time" est "dynamiquement" : Oui
Oui, comment ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Oui, comment ?

Il s'agit là d'une 2ème question sans rapport avec le titre ===>> discussion distincte à ouvrir, don, sur ce point précis?. Et sans même parler de ta picturebox.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
2

ce sont le X et le Y de l'évènement Mouse_down (ou Mouse_up, d'ailleurs)
Plus précisément ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Plus précisément ?

C'est une blague, ou quoi ?
Msgbox X, par exemple, dans l'évènement Mousedown t'affichera l'abscisse du point où tu cliques sur la picturebox
PS : je ne comprends pas que l'on puisse poser une telle question. Même la lecture de la rubrique Mousedown de l'aide VB6 te donne une explication on ne peut plus claire de X et de Y ! Je trouve donc assez abusif que l'on pose cette question là .
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
2
Moi ce que je ne comprends pas c'est comment on peut donner de telles réponses.
Déjà dans ta première réponse laconique.
Si je pose la question c'est que je ne sais pas non ?
Evidemment si tu sais tout je comprends ton exaspération.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je te demande (et insiste) d'ouvrir ton aide VB6 à la rubrique de l'évènement MouseDown.
Surtout si tu "ne sais pas".
Mon aide, sur ce forum, ne peut venir qu'APRES de geste élémentaire. Voilà.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour,

Tu peux aussi créer une région dans ton image, un carré, un polygone,un cercle ou une ellipse selon tes besoins.
Si le clic se fait dans la région alors tu exécutes le code adéquat.

Cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Si tu as plusieurs zones cliquables qui dépendent du même code tu peux en plus utiliser la fonction CombineRgn en paramétrant le mode de combinaison avec RGN_OR (&H2), tu auras ainsi plusieurs zones qui ne formeront qu'une seule région.
Tu contrôles si le clic est dans la région avec la fonction PtInRegion.

Si cela ne nuit pas à ton image, dont on ne sait absolument pas à quoi elle ressemble, tu as en plus la possibilité de tracer le contour de la régions afin de mieux voir la ou les zones cliquables.

Il faut nous en dire un peu plus afin que notre aide soit la plus efficace possible.

Cheyenne
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
2
Il s'agit là d'une 2ème question sans rapport avec le titre
Je te demande (et insiste) d'ouvrir ton aide VB6 à la rubrique de l'évènement MouseDown.
Tu te moques du monde !
Je pose une question dont je ne connais pas la réponse, sinon, je ne la poserais pas
Tu réponds laconiquement et par 2 fois tu me demandes d'ouvrir un autre sujet.
Est-ce la règle ici d'ouvrir un nouveau fil chaque fois qu'on obtient un embryon de réponse à une question ?
Tu peux aussi créer une région dans ton image ...
Merci pour ta réponse mais j'ai finalement trouvé plus simple : grâce à l'aide de "je sais tout" je connais les coordonnées de l'endroit où on a cliqué; je connais aussi celles du centre de chaque zone cliquable; pour chacune d'elles je calcule alors la distance entre les 2 points (racine de la somme des carrés); si elle est inférieure à 10 pixels, je considère qu'on a cliqué sur cette zone.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
1) "Il s'agit là d'une 2ème question sans rapport avec le titre "
ne concerne que la question
peut-on générer des boutons at run time ?

qui n'a en effet rien à voir avec le titre donné à la discussion
La seconde phrase de ta "citation" ne suivait pas la première !
Je crois devoir te rappeler qu'une discussion ne peut concerner qu'une difficulté technique, spécifique et parfaitement isolée. La discussion que tu as ouverte ici porte sur deux difficultés totalement distinctes. Et personne ne viendrait chercher comment créer dynamiquement des boutons dans une discussion ouverte avec le titre "Zone cliquable sur PictureBox". Tu es ici sur un forum technique, qui a ses règles.
2) ton problème de zone cliquable est résolu ? Je te rappelle qu'il t'appartient alors de cliquer sur le tag "réponse acceptée" au niveau dyu message qui t'a permis de le résoudre.

_______________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je vois d'ailleurs que tu as fini par l'ouvrir, cette discussion distincte relative à la création dynamique de boutonjs.
Bien.
Tu y as reçu des réponses (toutes exactes)
Elle est également en suspens


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Je vois que tu as trouvé une solution et compte tenu du ton que prend cette discussion je me retire sur la pointe des pieds avec mon idée de région. Idée à laquelle tu n'as d'ailleurs pas pris la peine de dire si elle te convenait ou pas. A croire que non, puisque tu passes par un calcul de distance entre deux points.

Cheyenne
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour, ami vrai développeur cheyenne,
Je crois que tu n'as pas encore réalisé que d'aucuns considèrent qu'une solution proposée n'en est une que si accompagnée du code à utiliser et que toute invite au véritable apprentissage/étude/lecture, à la réflexion et au travail est considérée comme de la prétention et de la moquerie. Est également considérée comme de la provocation l'invite à respecter certaines règles fondamentales.
Amitiés.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Et puisqu'il a choisi la "facilité" qu'il a choisie (par les coordonnées du point cliqué et leur "correspondance" avec, donc, des zones "rectangulaires virtuelles") : il aurait alors mieux fait de mettre un groupe de labels indexés transparents dans cette picturebox et d'utiliser leur propriété click (sans aucun calcul) tout bêtement.
Mais il voulait savoir comment déterminer les coordonnées du point cliqué (alors qu'elles le sont déjà duirectement par VB - paramètres X et Y de VB dans l'évènement MouseDown et/ou MouseUp). Il a donc eu sa réponse

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
2
il aurait alors mieux fait de mettre un groupe de labels indexés transparents dans cette picturebox et d'utiliser leur propriété click
Cette réponse est aussi hors sujet que ma question subsidiaire car il aurait aussi fallu les générer dynamiquement, comme ma proposition de boutons.
il t'appartient alors de cliquer sur le tag "réponse acceptée" au niveau dyu message qui t'a permis de le résoudre.
Je ne vais pas le faire car si ta réponse m'a effectivemnt donné la solution avec les coordonnées X,Y elle n'est pas formellement acceptable.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je ne vais pas le faire car si ta réponse m'a effectivemnt donné la solution avec les coordonnées X,Y elle n'est pas formellement acceptable

Comme tu veux ! Je mets donc ce comportement dans ma mémoire (pour l'avenir et pour ne plus risquer de donner une réponse perdue)
Bonne chance !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
905
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
19 septembre 2021
2
Je mets donc ce comportement dans ma mémoire
Si tu réponds chaque fois sur ce ton, tu dois avoir une grosse mémoire.
Salut !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
tu dois avoir une grosse mémoire

oui. Et je l'utilise systématiquement.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour ucfoutu,

Si si, j'ai bien constaté cet état de fait qui devient malheureusement de plus en plus fréquent.
Comme toi et bien d'autres je ne suis pas partisan de délivrer directement du code. Par contre corriger du code, ou mettre sur la voie pour écrire le code, oui.
Inviter à l'étude n'est pas de la prétention.
C'est en forgeant que l'on devient forgeron et pour rester dans les adages, "il faut mieux leur apprendre à pêcher que de leur donner du poisson". Dans ce cas, pour moi, apprendre à pêcher c'est consulter l'aide de VB6 et/ou faire des recherches personnelles.

Ne sachant pas la forme de la zone cliquable, j'ai donc soumis l'idée d'utiliser une région.
Mais, effectivement, si la zone est carrée ou rectangulaire, l'utilisation de labels transparents est plus simple à mettre en œuvre.

Bon dimanche,

Cheyenne