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

lectpe 163 Messages postés lundi 12 novembre 2007Date d'inscription 17 juillet 2010 Dernière intervention - 11 juin 2010 à 17:38 - Dernière réponse : lectpe 163 Messages postés lundi 12 novembre 2007Date d'inscription 17 juillet 2010 Dernière intervention
- 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
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 12 juin 2010 à 14:09
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de racpp
mogwai93 361 Messages postés mardi 31 décembre 2002Date d'inscription 19 mars 2015 Dernière intervention - 11 juin 2010 à 18:04
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
lectpe 163 Messages postés lundi 12 novembre 2007Date d'inscription 17 juillet 2010 Dernière intervention - 11 juin 2010 à 18:11
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
lectpe 163 Messages postés lundi 12 novembre 2007Date d'inscription 17 juillet 2010 Dernière intervention - 12 juin 2010 à 17:29
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.