begin process at 2012 05 29 19:48:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

Obtenir les coordonée de l'onglet d'un controle tab


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Obtenir les coordonée de l'onglet d'un controle tab

lundi 9 juillet 2007 à 15:29:13 | Obtenir les coordonée de l'onglet d'un controle tab

Neo_Fr

Membre Club
Bonjour, Je cherche a faire un menu pour fermer les onglet d'un tab control, j'ai fait le menu le probleme c'est qu'il est utilisable sur toute la fenetre, je voudrais donc recuperer les coordonées de l'onglet pour voir si le pointeur de la souris et dessus. Neo_Fr
lundi 9 juillet 2007 à 16:52:32 | Re : Obtenir les coordonée de l'onglet d'un controle tab

Neo_Fr

Membre Club
Réponse acceptée !
En cherchant un peu, j'ai fini par trouver: BOOL TabCtrl_GetItemRect(HWND hwnd, int iItem, RECT *prc); Le probleme c'est que j'utilise un structure pour stoquer quelque infos dont le RECT de l'onglet, mais si il y a plusieurs onglets et que je ferme un du millieu tout les onglets a la droite de celui que je vient de fermer vont s'aligner a gauche et les coordonnées vont logiquement changer, il faut donc mettre a jour le RECT de chaque structure, mais comment retrouver toutes les structures que j'ai creer?
lundi 9 juillet 2007 à 19:21:36 | Re : Obtenir les coordonée de l'onglet d'un controle tab

aardman

Membre Club
Salut,
Lorsque tu ajoutes ton tab, tu peux utiliser le champ lParam de la structure TCITEM pour y mettre ce que tu veux,  dans ton cas tu peux y sauver un pointeur sur ta structure.
Cela dit je trouve de sauver une copie du rectangle n'est pas une très bonne idée, il vaut mieux le demander a chaque fois que tu en a besoins.

lundi 9 juillet 2007 à 19:27:59 | Re : Obtenir les coordonée de l'onglet d'un controle tab

Neo_Fr

Membre Club
Mais a chaque fois que je vais ajouter un tab le pointeur de ma nouvelle structure va écraser l'ancien?
lundi 9 juillet 2007 à 19:38:46 | Re : Obtenir les coordonée de l'onglet d'un controle tab

aardman

Membre Club
Salut,
Ah non, tout ce que tu met dans la structure TCITEM c'est valable pour chaque item, pas pour tout le tabcontrol.
Apres pour récuperer ton pointeur a partir d'un index d'un item tu peux utiliser TCM_GETITEM.

lundi 9 juillet 2007 à 19:46:13 | Re : Obtenir les coordonée de l'onglet d'un controle tab

Neo_Fr

Membre Club
Il faut donc creer une seule structure TCITEM pour tout le controle et non pas a chaque tab? Comment gerer les index du control? Pour l'instant j'utilise un variable global que j'incremente a chaque nouveaux tab et que j'affecte au nouvel index.
lundi 9 juillet 2007 à 20:00:47 | Re : Obtenir les coordonée de l'onglet d'un controle tab

aardman

Membre Club
Réponse acceptée !
Salut,
Une ou plusieur ca n'a pas d'importance, il faut juste que tu remplisses les bons champs avant de faire un TCM_INSERTITEM.
Quand tu ajoutes un item, les données sont recopiées a partir de ta structure TCITEM, donc apres tu peux t'en reservir pour rajouter un deuxieme item si tu le souhaite, ca ne pose pas de probleme.
Pour les index, tu peux eviter la variable globale et utiliser le message TCM_GETITEMCOUNT, pour placer tes nouveaux tabs toujours à droite.



lundi 9 juillet 2007 à 20:09:06 | Re : Obtenir les coordonée de l'onglet d'un controle tab

Neo_Fr

Membre Club
OK, merci de tes réponsses je vais pouvoir partir en vacances tranquille =)
lundi 9 juillet 2007 à 20:15:17 | Re : Obtenir les coordonée de l'onglet d'un controle tab

Neo_Fr

Membre Club
Une derniere question: Si j'ai par exemple 10tabs et que je ferme le 5eme, si j'en ouvre une autre TCM_GETITEMCOUNT me renverra 9 et je ne pourrais pa prendre cet index qui est deja attribuer, alors comment faire?
lundi 9 juillet 2007 à 20:24:10 | Re : Obtenir les coordonée de l'onglet d'un controle tab

aardman

Membre Club
Salut,
Les index vont toujours de 0 à itemcount - 1 (et c'est valable pour tout les controles).
Autrement dit si tu as 10 item, ils auront les index 0 a 9. Si tu fermes le tab n°5,  tout les index des tabs apres 5 sont décrementés, le tab d'index 6 devient celui d'index 5, le tab d'index 7 devient celui d'index 6, etc.
Un index n'est pas un identifiant permanent, il faut donc pas supposer qu'il restera toujours associé au même item pendant toute la durée de vie du tabcontrol.


1 2

Cette discussion est classée dans : controle, tab, onglet, obtenir, coordonée


Répondre à ce message

Sujets en rapport avec ce message

[MFC] Onglet marchent en debug, pas en release [ par sakuragikan ] Bonjour ! J'ai un bug qui apparait en release mais pas en debug, au niveau des onglets de ma Tab, qui appartient a une dialogue box. Je sais que ce ty Prob Tab control avec VC++ [ par loicus ] Bon voila, j'aimerais rajouter un Tab COntrol dans une DialogBox, Mais quand j'en ajoute une avec VC++ grace a l'editeur de ressource (dialogbox)de 1 Rendre invisible un onglet d'un tab control [ par cyko ] Bonjour, Je suis en train de develloper une application en Visual C++ . Dans un de mes formulaires, j'ai un tab control avec cinq onglets.Jusque la pa Tab Control [VC6] [ par thebigbang ] Bonjour à vous tous,J'ai voulu insérer un Tab Control dans un projet.J'ai réussi en partie grâce à la source de BruNews. Merci à luiCependant dans cet Utilisation de tab dans une appli win32 [ par zibo3 ] Bonjour, j'utilise le code suivant dans ma fenêtre pour créer deux champs Edit et j'aimerai naviguer à l'aide de la touche Tab mias mon ordinateur eme obtenir un driver de peripherique [ par seito ] seito est ce que quelqu'un sait comment obtenir un driver de peripherique sous visual C 6.0 Boutons dans un Control Tab [ par aujeanfr ] Bonjour,Je debute vc++ . G placé des boutons dans un Control Tab (sur des onglets dans ma fenêtre principale).Et lorsque je veux tester ces boutons av Scrollbar et Win32 [ par MixerAnderson ] Bonjour,Depuis quelques temps je développe une IHM en Win32. J'ai développé des classes c++ dans lequel je gère le WndProc en méthode de classe (grace Pointeur sur une fenêtre [ par dieu2028 ] Je suis en train de créer une application SDI et j'ai créé une barre d'outils flottante dans laquelle est insérer des onglets. Je voudrais pouvoir lor Alt+TAB [ par bdkiller ] Bonjour,Je travaille sous Borland C++ Builder, et actuellement je me prends la tête à bloquer les combinaisons de touches ALT+F4, ALT+TAB et Ctrl+Alt+


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,245 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales