Bonjour,
Je fais un AddIn pour Visual Studio en C#, avant de me crier dessus parce que ce n'est pas le bon forum, faut lire un peu plus loin
Même si vous ne connaissez pas Visual Studio vous pouvez quand meme connaitre certaines réponses dès lors que vous êtes familier des TreeView en API WIN32.
L'API fournie pour manipuler les fenêtres contenant des hiérarchies (typiquement l'explorateur de solution) est plus qu'extrêmement limité. En effet, elle permet de faire 2 choses : ouvrir/fermer un noeud et
C'est tellement limité que j'ai entreprit de coder une classe qui encapsule la TreeView en me permettant d'envoyer/intercepter les messages. Conclusion, je l'utilise exactement comme en C, avec les mêmes messages, les mêmes fonctions, les mêmes structures, ...
Seulement je trouve peu de documentation sur son utilisation en C et je me pose donc quelques questions :
- Les noeuds sont identifiés par des HTREEITEM, qui est définit comme ceci dans commctrl.h
Mais je n'ai pas trouvé la définition du _TREEITEM. Je ne sais donc pas comment est la structure en question.
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 typedef struct _TREEITEM *HTREEITEM;
- Les noeuds sont identifié par des HTREEITEM comme je disais plus haut, mais comment obtenir les données pointées par le noeud ? Typiquement, dans le coté .Net, j'ai des UIHierarchyItem pour représenter un noeud, comment je trouve le HTREEITEM correspondant et inversement ?
- Je ne trouve aucun mécanisme pour masquer un noeud. J'ai des noeuds que je veux juste rendre invisible. J'ai lut à certains endroits qu'il fallait supprimer purement et simplement les noeuds de la treeview et les ré-insérer quand on voulait les rendre à nouveau visible. Ca m'étonne un peu qu'il n'y ai pas plus simple. Et comment je peux faire ca alors que je n'ai aucune idée de la taille et de la structure qui se cache derrière un HTREEITEM.
Partager