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 :

[wxWindows] wxSizer


Sujet :

wxWidgets

  1. #1
    Membre régulier
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Points : 87
    Points
    87
    Par défaut [wxWindows] wxSizer
    salut,


    j'ai envie de faire en sorte qu'un wxTextCtrl occupe toute la sone client (sans la barre de statut) d'un wxFrame, et qu'il soit redimensionné lorsque la wxFrame l'est.

    pour cela, j'ai cru comprendre qu'il fallait utiliser les wxSizer, et donc après voir lu la doc et a peu près compris, j'ai tapé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
     
     
       sizer->Add(  theText = new MyTxt(this,
      	                                 -1,
      	                                 wxString(""),
      	                                 wxDefaultPosition,
      	                                 GetClientSize(),
                                        wxTE_MULTILINE),
                    1,
                    wxSHAPED|wxALL,
                    0); 
      	SetSizerAndFit(sizer);

    dans lequel MyTxt est une classe dérivant de wxTextCtrl...

    le problème est que mon control se se redimensionne pas du tout !

    qu'est-ce que j'ai raté ?


    merci d'avance de l'aide !

  2. #2
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Normal 8)

    Voici un code qui devrait marcher (dans le constructeur de ta frame) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
    wxTextCtrl *mytxt = new wxTextCtrl(this,
      555,         // remplace par un ID à toi pour la gestion événementielle
      "", 
      wxDefaultPosition,
      wxDefaultSize,
      wxTE_MULTILINE
      );
    sizer->Add(mytext, 1, wxEXPAND);
    SetSizer(sizer);
    Tout est dans le sizer->Add() :
    - wxEXPAND dit au contrôle de prendre toute la place en longueur
    - le 1 lui dit de prendre toute la place possible en hauteur

    J'ai mis l'attribut multiline au contrôle mais je ne sais pas si c'est nécessaire. Pour tester, tu peux placer un simple bouton à la place d'une zone de texte.

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

Discussions similaires

  1. wxwindows et dev c++
    Par freeshman dans le forum wxWidgets
    Réponses: 11
    Dernier message: 31/01/2004, 16h52
  2. C++Builder X et wxWindows
    Par Royd938 dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 23/12/2003, 20h21
  3. wxWindows et DevC++ : taille de l'exe énorme !
    Par ovh dans le forum Dev-C++
    Réponses: 7
    Dernier message: 19/11/2003, 17h01
  4. Problème à l'exécution avec wxWindows (compilé avec BCC55)
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 14/11/2003, 18h04
  5. wxwindows
    Par blue dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 14/08/2002, 15h50

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