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

C++Builder Discussion :

Améliorer le dessin du texte d'un TMenuItem


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut Améliorer le dessin du texte d'un TMenuItem
    Bonjour,

    Je reviens sur une petite chose que j'avais traité il y a peu :
    ancien sujet

    Ci joint donc le bout de code qui tourne en ce moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    ACanvas->Brush->Color = clSilver;
    ACanvas->FillRect(ARect);
    if (State.Contains(odSelected))
    {
    ACanvas->Font->Color = clRed;
    ACanvas->Font->Style = TFontStyles()<< fsBold;
    ACanvas->Rectangle(ARect);
    }
    else
    {
    ACanvas->Font->Color = clNavy;
    ACanvas->Font->Style = TFontStyles();
    }
    tagRECT* pRect = new tagRECT();
    pRect->left = ACanvas->ClipRect.left;
    pRect->right = ACanvas->ClipRect.right;
    if (Index > 0)
    {
            pRect->top = 20 * Index;
    }
    else
    {
            pRect->top = ACanvas->ClipRect.top;
            pRect->bottom = ACanvas->ClipRect.bottom;
    }
    DrawText(ACanvas->Handle, ((TMenuItem*)Sender)->Caption.c_str(), ((TMenuItem*)Sender)->Caption.Length(), pRect, DT_CENTER);
    Et le problème :
    Le texte de certains TMenuItems ne se fait pas toujours, ou alors pas tout de suite, il faut alors passer la souris devant afin de le faire apparaitre...le tout de manière assez aléatoire.
    Il semble que pour que cela fonctionne proprement, il faille bouger assez doucement la souris sinon, une fois sur deux, il y a un problème a l'affichage...

    Si quelqu'un a une idée pour améliorer ce petit soucis d'affichage...

    Merci
    @ +

  2. #2
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Cool....

    J'ai trouvé....ce n'etait qu'un tout petit rien, tellement petit que je ne le voyais pas...Il suffisait de changer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (Index > 0)
    {
            pRect->top = 20 * Index;
    }
    else
    {
            pRect->top = ACanvas->ClipRect.top;
            pRect->bottom = ACanvas->ClipRect.bottom;
    }
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (Index > 0)
    {
            pRect->top = 20 * Index;
    }
    else
    {
            pRect->top = ACanvas->ClipRect.top;
    }
            pRect->bottom = ACanvas->ClipRect.bottom;
    Et oui...une erreur vraimment tout bête...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [D7] comment dessiner du text le long d'un polyline
    Par pavlacki dans le forum Delphi
    Réponses: 5
    Dernier message: 24/06/2007, 13h40
  2. Dessiner du texte ?
    Par tintin72 dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 01/05/2007, 12h02
  3. Dessiner du texte à l'écran
    Par rolkA dans le forum DirectX
    Réponses: 2
    Dernier message: 22/07/2003, 12h34

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