-
"promener" son Curseur
Bonjour,
Je dois « promener » un deuxième curseur sur l’écran ,curseur dont les coordonnées sont indépendantes de celles de la souris. Est ce possible ?
Je suis parvenu à simuler un curseur à l’aide d’une picturebox chargée d’une icône représentant un curseur, mais le résultat n’est pas satisfaisant : d ‘ une part, parce que la partie transparente de l’image n’est pas mise à jour suffisamment rapidement ( ce qui laisse une traîné de carrés gênante, même si elle s’estompe) d’autre part parce que je ne bénéficie pas de la particularité qu’ont les curseurs d’afficher la couleur complémentaire des pixels qu’ils masquent.
Merci ,c’est important !
-
Bonjour.
Tu peux utiliser la classe Cursor en utilisant ton propre fichier .cur (il existe des tonnes de logiciels gratuits pour générer ce type de fichier).
Cdt.
-
A olsimare,
...Je n'ai pas compris...?
Il ne s'agit pas d'utiliser un curseur personnalisé, mais de faire se mouvoir un autre curseur, indépendamment des coordonnées de la souris, comme on peut le faire avec une picturebox lorsqu'on utilise top et left.
La classe curseur (il me semble) ne permet pas d'assigner des coordonnées au curseur , mais seulement de les récupérer, et c'est bien là mon problème.
Si l'on pouvais charger un objet *.cur dans une picturebox...
-
Bonjour.
Evidemment, Cursor ne suffit pas ...
En fait, il s'agit de gérer un control qui dessine le cursor dans son graphics lors du paint via le cursor.draw --> une espéce de popup donc.
Cdt.
-
J'ai cru résoudre mon problème avec cursor.draw!!!!!
Dim rectangle As Rectangle = New Rectangle(xe + 25, ye - Cursor.Size.Height / 2, Cursor.Size.Width, Cursor.Size.Height)
cursorClone.Draw(g1, rectangle)
Me.CreateGraphics.DrawImage(b1, 0, 0)
Je dessine bien le curseur souhaité, mais, nouveau problème! le dessin du cuseur persiste sur la zone de dessin laissant derrière une traînée de curseurs et ce ,contrairement à ce qui se passe avec une picturebox que l'on la déplace avec top et left.
Il est or de question d’utiliser .clear car le curseur se promène sur une image volumineuse qu'on ne peut redessiner à chaque instant.
Que faire? recouvrir le précédent par un curseur transparent? découper l'emplacement de l'image cachée par le curseur et redessiner?
n'y aurait il pas une méthode genre cursor.move ou quelque chose de plus simple et rapide?
Merci !
-
Bonjour.
As-tu essayé d'encapsuler le cursor dans un control que tu proménerais comme tu voulais le faire avec la picturebox (en jouant sur la location) ?
Ainsi, la gestion du redessin serait faite automatiquement.
Cdt.
-
A Olsimare,
Oui je suis déjà sur cette piste, à la suite de ta première observation, et cela marcherait.
Mais je me débat maintenant avec la position du «clone » qui est fonction de la position de la souris : Les e.x et e.y de la souris ne correspondent pas au top et left de l’image-clone qui eux même ne correspondent pas à Cursor.Position.X (y) ; de plus le décalage est différent suivant la nature du Curseur courant.
Autre ombre le curseur obtenu n’est pas un vrai curseur en ce sens qu’il n’affiche pas la couleur complémentaire des pixels qu’il masque.
Mais bon, je ne désespère pas…
Je suis issu du VB6 et ne sui pas à l’aise avec la programmation orientée objet; l’encapsulation m’est étrangère ,dois je approfondir ?
Merci pour ton aide !