Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 2014
-
9 juil. 2007 à 15:29
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 2014
-
9 juil. 2007 à 21:02
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
A voir également:
Obtenir les coordonée de l'onglet d'un controle tab
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 9 juil. 2007 à 16:52
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?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20124 9 juil. 2007 à 20:00
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.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20124 9 juil. 2007 à 20:49
Salut,
Toutes les informations que tu donnes lors de l'ajout de l'item restent
associé au meme item pendant toute la durée de vie du tabcontrol, donc
pas besoin de faire ca. Il faut bien comprendre que l'index n'est
justement pas une information associée a un item, et donc il ne faut
pas le stocker pour s'en reservir plus tard.
Generalement dans tout les messages de notifications, TCN_ ou NM_, tu
aura accés a l'index du tab concerné et donc a partir de cet index tu
peux recuperer n'importe quelle donnée de ton item.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20124 9 juil. 2007 à 19:21
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.
<link href="../../../css/ie4.css" type="text/css" rel="stylesheet" /><!-- @ --><link href="../../../css/inetsdk.css" type="text/css" rel="stylesheet" /><!-- @ --><style type="text/css"><![CDATA[
PRE.clsCode { font-size:110%; }
PRE.clsSyntax { font-size:100%; }
TD DIV.clsBeta { display:none;}
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 9 juil. 2007 à 19:46
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.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 9 juil. 2007 à 20:15
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?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20124 9 juil. 2007 à 20:24
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.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 9 juil. 2007 à 20:39
Existe t-il un evenment associé a la fermeture d'une tab?; car si les index se decrementes tt seul quand je vais vouloir recuperer le pointeur de l'index 7 je vais tomber sur celui du 6 il faut donc que je mette a jour les pointeurs?