IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Onglets personnalisés avec TabControl


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut Onglets personnalisés avec TabControl
    Bonjour,
    Je suis débutant, et j'ai un peu de mal avec les onglets :
    j'ai récupéré le projet de farscape sur les TabControl, qui est très pratique, mais je voulais savoir s'il était possible de personnaliser chaque onglet séparément (couleur personalisée du texte, et couleur du fond (uniquement l'onglet qui dépasse)).
    Car a ce que j'ai compris, on ne peux modifier que la couleur du texte selon que l'onglet soit sélectionné, relégué au second plan ou désactivé.

    Si vous avez une idée, elle est la bienvenue

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    si tu veux changer le système de couleur pour le texte de l'onglet tout ce passe dans la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CXTabCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
    tu peux très bien rajouter un méthode pour spécifier la couleur du texte par onglet.
    pour le fond c'est un plus délicat:
    j'ai fait rapidement ce petit essai qui ne règle pas tous les cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void CTabMoreInformation::OnShowWindow(BOOL bShow, UINT nStatus) 
    {
        CTplDlgColor<CDialog>::OnShowWindow(bShow, nStatus);    
        // TODO: Add your message handler code here
        CXTabCtrl *ptab=static_cast<CXTabCtrl*>(GetParent());
        if(bShow)    ptab->m_crBackColor    =RGB(163, 209, 209);
        else        ptab->m_crBackColor    =RGB(193, 193, 255);
    }
    sur un onglet sur l'activation et désactivation ,je change la couleur de fond du ctabctrl (c'est un essai brut pour montrer le principe).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    Salut,
    merci pour la réponse.
    Mais étant débutant, je vais poser une question bete : La fonction DrawItem est celle de CXTabControl. Comment peut-on acceder aux propriétés d'un onglet en particulier ?
    Je n'y arrive pas

    Merci beaucoup

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    J'ai reussi a modifier la couleur d'un onglet en particulier.

    J'aurais une autre question fascape, avec un CXTabCtrl, peut-on mettre les onglets de manière vertical ?
    J'ai été modifier dans les propriétés de mon TabCtrl (grace à l'éditeur graphique) la disposition des onglets, puis j'ai modifié également m_ptTabs.x et .y .Mes onglets sont bien verticaux, mais je n'ai plus de texte.

    Ai-je oublié quelque chose ?

    Merci beaucoup

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    tu n'as rien oublié je n'ai pas géré ce cas ...
    il faudrait que je modifie la gestion du dessin ,l'ecriture en vertical
    le calcul de l'emplacement de l'onglet .

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    ok
    pas de probleme, je vais essayer de voir si j'arrive à faire quelque chose

    Merci beaucoup

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    Juste pour information, j'ai modifié l'option de DrawText en ajoutant DT_EXPANDTABS et DT_BOTTOM, et j'ai reussi (à peu près) à avoir le texte en vertical.
    Le seul probleme que j'ai, c'est que le dernier caractère est très proche du bord haut de l'onglet.
    Pour l'instant, je m'en contente en ajoutant quelques espaces

    Encore merci pour cette classe qui m'aide beaucoup
    Salut

Discussions similaires

  1. Exemple d'utilisation d'onglets avec TabControl
    Par Vilukariok dans le forum Débuter
    Réponses: 5
    Dernier message: 18/09/2010, 22h25
  2. Comment créer des onglets comme avec Excel (sheet1/sheet2)
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/09/2005, 16h36
  3. [delphi6][interbase]probleme avec tabcontrol et un dbgrid
    Par macadam314 dans le forum Bases de données
    Réponses: 4
    Dernier message: 11/04/2005, 01h05
  4. [VB.NET] Cache l'onglet d'un TabControl
    Par Lois dans le forum Windows Forms
    Réponses: 14
    Dernier message: 27/10/2004, 09h55
  5. [VB.NET] Couleurs des onglets d'un TabControl
    Par ineznia dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/04/2004, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo