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

wxWidgets Discussion :

[wxTextCtrl] problème avec SetDefaultStyle


Sujet :

wxWidgets

  1. #1
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut [wxTextCtrl] problème avec SetDefaultStyle
    Bonjour,

    je crée un wxTextCtrl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myOutput = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxDefaultSize,wxHSCROLL|wxTE_MULTILINE|wxTE_RICH);
    puis je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b = myOutput->SetDefaultStyle(wxTextAttr(*wxRED));
    et ça marche: quand j'écris dedans, le texte est rouge.

    Mais si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b = myOutput->SetDefaultStyle(wxTextAttr(*wxRED,*wxBLUE));
    Le texte est toujours en rouge, mais le background n'est pas bleu. pourquoi?

    Pire: si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b = myOutput->SetDefaultStyle(wxTextAttr(*wxRED,*wxBLUE,wxFont(25,wxFONTFAMILY_MODERN,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL)));
    Le texte est noir maintenant, et la wxFont n'a pas changé. Qu'est-ce qui est faux? (en fait je souhaite avoir une police de caractère monospace, comment faire?

    Merci

    Remarque: j'ai testé, la valeur de retour de la fonction est "true"

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Chez moi ça marche (wxWidgets 2.7.0 sur Win XP).

    Mais j'ai plutôt tendance à changer le style de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    wxTextAttr attr(myOutput->GetDefaultStyle());
    attr.SetTextColour(...);
    attr.SetBackgroundColour(...);
    attr.SetFont(...);
    myOutput->SetDefaultStyle(attr);
    Pour avoir une police de caractère monospace il faut soit indiquer un faceName d'une police monospace dans le constructeur de wxFont, par exemple "Courier New", soit (plus général) utiliser un wxFontEnumerator avec fixedWidthOnly à true.

  3. #3
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Merci, je préfère ta méthode. Je la trouve plus claire.

    Cela dit, même avec ta méthode je n'avais que la couleur du text qui changeait.
    en fait, lors de la création de mon wxTextCtrl, j'ai remplacé wxTE_RICH par wxTE_RICH2 et maintenant ça marche.

    A noter que si je remplis mon texte à l'aide d'un WriteText, il prend bien la forme et les couleurs voulues, mais si je le remplis à l'aide d'un SetValue, alors il redevient petit et noir sur blanc.

    et si après ça j'ajoute du texte "à la main", il est aussi noir sur blanc, donc on dirait que le SetValue remet le "style" avec le style par défaut

    a+
    Biosox

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

Discussions similaires

  1. Problème avec wxTextCtrl
    Par zorglbug dans le forum wxWidgets
    Réponses: 1
    Dernier message: 05/01/2014, 12h35
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 12h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 19h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10

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