[ Win32 ] TabControl - TC_ITEM - ScrollBar - Suppression [Résolu]

Messages postés
163
Date d'inscription
lundi 12 novembre 2007
Dernière intervention
17 juillet 2010
- - Dernière réponse : lectpe
Messages postés
163
Date d'inscription
lundi 12 novembre 2007
Dernière intervention
17 juillet 2010
- 12 juin 2010 à 17:29
Bonjour à tous.

Je suis en train de réaliser une application avec l'API Win32.
J'ai un TabControl dans lequel j'ai plusieurs TC_ITEM.

J'ai deux questions :
- Si une scrollbar est présente sur l'un de ces TC_ITEM, comment faire défiler le contenu de ce TC_ITEM ?

- Si des éléments HWND sont présents dans chaque TC_ITEM, comment, à la suppression d'un item, reconnaître quels éléments HWND (dont le control parent est le TabControl) il faut supprimer ?

En espérant que vous puissiez me venir en aide, je vous remercie par avance.

Cordialement, Grégory.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
3
Merci
Salut,
Le membre lParam de la structure TCITEM te permet de mémoriser le HWND du bouton que tu veux associer à chaque onglet. Ce membre peut être utilisé pour sauvegarder n'importe quelle valeur 32 bits en Win32. S'il s'agit du handle d'un bouton, il suffira donc de récupérer cette valeur, juste avant la suppression de ton onglet, et la passer en paramètre à DestroyWindow(). Je suppose que le bouton a été créé dynamiquement à la création de l'onglet. Les macros TabCtrl_SetItem() et TabCtrl_GetItem() sont utilisées respectivement pour définir puis lire le contenu des membres de la structure TCITEM d'un onglet donné.
Le membre lParam pourrait contenir un pointeur sur une structure personnalisée qui contiendra toutes les données que tu veux associer à ton onglet.
A mon avis, il est préférable d'utiliser des boites de dialogue pour rassembler des contrôles dedans. Chaque boite de dialogue est associée à un onglet. Juste avant la suppression d'un onglet, on récupère le HWND le la boite associée depuis le membre lParam et le passer en paramètre à EndDialog().
Je pense que l'utilisation des boites de dialogue te permettra aussi de résoudre le problème de ta première question.

Merci racpp 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de racpp
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Dernière intervention
19 mars 2015
0
Merci
salut

1) "- Si une scrollbar est présente sur l'un de ces TC_ITEM, comment faire défiler le contenu de ce TC_ITEM ? "
--> Il te faut créer une nouvelle fenêtre dans ton onglet, ensuite tu places tes widgets dessus
la scrollbar appellera ScrollWindow sur cette fenetre


2) Pas compris la question
Commenter la réponse de mogwai93
Messages postés
163
Date d'inscription
lundi 12 novembre 2007
Dernière intervention
17 juillet 2010
0
Merci
Merci d'avoir répondu.

Pour la deuxième question, je ré-explique :

Si dans un TabControl j'ai trois TC_ITEM dont chacun d'eux possède un élément "button", et que j'appelle la macro TabCtrl_DeleteItem en lui donnant en paramètres le TabControl et l'identifiant 1 (correspondant donc au 2e onglet, celui du milieu), je veux également supprimer le bouton qui est présent sur ce TC_ITEM (et pas supprimer le bouton présent sur le premier ou le dernier TC_ITEM).
Commenter la réponse de lectpe
Messages postés
163
Date d'inscription
lundi 12 novembre 2007
Dernière intervention
17 juillet 2010
0
Merci
Bonjour.

C'est ce que je cherchais, merci beaucoup.

Cordialement, Greg.
Commenter la réponse de lectpe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.