J'essaye de peindre la cellule de VirtualStringTree différemment quand la souris est dessus. Comment puis-je détecter les coordonnées du nœud chaud? Je sais qu'il existe une propriété HotNode mais elle renvoie uniquement le nœud situé sous le curseur de la souris. J'ai besoin d'obtenir des coordonnées de cellule (X, Y) de ce nœud.Comment obtenir les coordonnées de nœud chaud de TVirtualStringTree?
Répondre
Vous pouvez obtenir les coordonnées de n'importe quel nœud avec la méthode GetDisplayRect
. En outre, InvalidateNode
vous dira les coordonnées du nœud que vous venez d'invalider.
Pour vos besoins, je ne pense pas que vous ayez besoin de connaître les coordonnées de n'importe quel nœud arbitraire, cependant. Au lieu de cela, vous devez savoir, lorsque vous peignez le nœud, si le nœud que vous peignez est chaud. Tous les événements owner-draw spécifiques au nœud vous indiquent à la fois le nœud actuel et les coordonnées, à l'exception de OnPaintText
, qui ne vous indique que le nœud. Cependant, vous n'avez pas besoin de suivre le nœud actif actuel. Vérifiez simplement si Node = Sender.HotNode
pour déterminer le style à utiliser pour peindre le nœud et son texte.
Vous pourriez peut-être éviter tout le problème. Le contrôle dispose déjà d'une bonne quantité de code spécifique aux nœuds actifs, il se peut donc qu'il s'agisse simplement de trouver les propriétés à configurer au lieu de devoir tout peindre soi-même.
- 1. Comment obtenir les coordonnées de Gridlayout
- 2. comment obtenir les coordonnées UIImageView?
- 3. Comment puis-je obtenir des coordonnées de nœud à partir d'un graphique, en utilisant Perl?
- 4. Chaud de valider les modifications pour un TreeView lors de l'édition d'un nœud (C#)?
- 5. iTextSharp: obtenir les coordonnées de l'image
- 6. Obtenir les coordonnées XY de RichTextBox caret
- 7. Obtenir les coordonnées GPS de Samsung Intrepid
- 8. Comment obtenir les coordonnées d'un événement tactile
- 9. Mojo.Event.tap - comment obtenir des coordonnées de prise?
- 10. Obtenir l'élément via les coordonnées?
- 11. Comment obtenir les attributs d'un nœud xml
- 12. Colonne de dimensionnement automatique dans TVirtualStringTree
- 13. Comment obtenir les coordonnées de bord d'une image?
- 14. Chaud obtenir le nom d'un objet?
- 15. Obtenir les coordonnées de la souris à l'aide de jQuery
- 16. Obtenir les coordonnées des marqueurs Google Maps
- 17. diviser l'image et obtenir les coordonnées
- 18. Obtenir les coordonnées GPS Windows Phone 7
- 19. Service Web pour obtenir les coordonnées GPS
- 20. HTML5: dragover(), drop(): comment obtenir les coordonnées x, y actuelles?
- 21. Comment obtenir l'heure locale selon les coordonnées GPS?
- 22. Comment obtenir les coordonnées d'un élément HTML en utilisant C#?
- 23. java obtenir les coordonnées de l'écran pour n'importe quel objet
- 24. Utilisation de l'API NetLogo pour obtenir les coordonnées tortue
- 25. Comment obtenir les coordonnées des quatre coins d'un rectangle?
- 26. Comment obtenir les coordonnées x y d'une image dans php
- 27. Comment obtenir les coordonnées d'un UIImageView par programme?
- 28. comment obtenir les coordonnées d'un polygone dans OpenLayers
- 29. Comment obtenir les coordonnées d'un objet dans une toile tkinter?
- 30. Comment obtenir les coordonnées d'une image pour CGRectMake
Le problème est que j'ai besoin de peindre la cellule du nœud différemment de la position actuelle de la souris. Par exemple, si j'ai 5 étoiles vierges peintes dans la cellule, alors si la souris est sous la troisième étoile, je veux dessiner ces étoiles comme des étoiles "sélectionnées". – Linas
OK, puis ignorez le dernier paragraphe. Dans l'événement OnMouseMove, appelez 'InvalidateNode (HotNode)'. Dans l'événement paint, vérifiez la position actuelle de la souris. Ne faites pas votre peinture * dans * l'événement mouse-move. –
Vous pouvez utiliser 'GetHitTestInfoAt()' avec la position actuelle du curseur pour savoir si le noeud que vous dessinez est le noeud sur lequel la souris est terminée. Appelez ceci dans votre événement paint, puis comparez 'HitInfo.HitNode' avec le noeud que vous peignez. – Nat