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 :

[MFC] problème avec les insertions dans CComboBox


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut [MFC] problème avec les insertions dans CComboBox
    Bonjour,
    J'essaye d'inserer des CSrings dans une CComboBox avec la fonction "AddString" et ça ne fonctionne pas : à l'execution j'ai le droit à un joli "assertion failed"!!! voila le code qui ne fonctione pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ParamDlg * param= new ParamDlg();
     
    CString mot;
    CString donnee="blabla th1 th2 th3 #";
    while (!finRecupParam)
    {
    mot = donnee.Tokenize(" ",PositionToken);
    AfxMessageBox(mot);
    param->Themes.AddString(mot);
    if (mot == "#") finRecupParam = true;
    }
    "Themes" est ma comboBox qui est contenu dans "ParamDlg"...
    si vous pouviez m'aider... la je suis à cour d'idee
    [FARSCAPE : Merci]

  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,
    pb classique !
    voir ce post dans la faq :
    http://c.developpez.com/faq/vc/?page...angeDialogData

  3. #3
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    j'avais oublié de preciser... je suis un débutant en visual c++! et je n'ai pas vraiment reussit à appliquer ce qui était ecris dans le post!
    Je precise.
    J'arrive à ouvrir une boite de dialogue à partir de ma boite "parent".
    J'arrive ensuite à récuperer la valeur des champs de le seconde boite de dialogue.
    Ce que je n'arrive pas à faire, c'est à ajouter des strings dans une comboBox avant d'utiliser doModal : j'aimerai que ma comboBox soit remplie avant que la deuxieme boite de dialogue ne s'ouvre.
    La variable "jeu" est ma premiere boite de dialogue.

    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
     
    ParamDlg * param= new ParamDlg();
     
    while (!finRecupParam)
     
    {
    	mot = donnee.Tokenize(" ", PositionToken);
    	param->Themes.AddString(mot);
    	if (mot == "#") finRecupParam = true;
    }	
    if(param->DoModal()!= IDOK)
    {
    	jeu->nb_j=param->Nb_j;
    	jeu->nb_q=param->Nb_q;
    }
    Je ne comprend pas comment utiliser DoModal differemment!
    Merci d'avance
    Clément

  4. #4
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Points : 111
    Points
    111
    Par défaut
    C'est normal, il faut que ta boite de dialogue soit initialisée avant de pouvoir insérer des infos dans ta combo. Je te conseille de remplir ta combo dans le OnInitDialog de ta boite de dialogue
    501darts

    Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    Le problème c'est que je recois les données provenant d'un serveur, et je ne peux récuperer ces données que depuis le thread dans lequel il y a le code que j'ai communiqué précedemment...
    Il n'y aurait pas moyen de creer un constructeur dans lequel je passerai le String?

  6. #6
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Points : 111
    Points
    111
    Par défaut
    Tu peux passer à ton constructeur de dialogue par exemple un CStringArray qui contiendrait toutes les chaines que tu veux insérer
    501darts

    Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur.

  7. #7
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    heu... ... comment creer un constructeur sous visual c++?
    quand je fais "ajouter une variable" il veut absolument un type de retour...

  8. #8
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Points : 111
    Points
    111
    Par défaut
    Dans ta classe CTaDialog :

    - Dans le .h tu définis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      // Une variable
      CStringArray m_Tab;
      // Le constructeur
      CTaDialog(CStringArray Tab);
    - Dans le .cpp tu définis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      CTaDialog::CTaDialog(CStringArray Tab)
      {
        m_Tab.Copy(Tab);
      }
    501darts

    Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur.

  9. #9
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ParamDlg::ParamDlg( CStringArray pListeTheme,CWnd* pParent /*=NULL*/ )
    	: CDialog(ParamDlg::IDD, pParent)
    {
    	listeTheme.Copy(pListeTheme);
    }
    dans mon thread je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CTaDialog param = new CTaDialog(Tab)
    ... et ça ne fonctionne pas!
    il me met : impossible de convertir le paramètre 1 de 'CStringArray' en 'CStringArray' :

  10. #10
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Points : 111
    Points
    111
    Par défaut
    Passe par des pointeurs ...
    501darts

    Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur.

  11. #11
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    enfin dans mon thread je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ParamDlg param ...
    pardon lol

  12. #12
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut
    ca compile!! merci
    maintenant je vais oir si ça marche...
    je te tiens au courant

  13. #13
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Points : 53
    Points
    53
    Par défaut [resolu]
    MERCI
    ca marche j'arrive enfin a ajouter des strings dans cette BIP de comboBox 8)

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

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. Réponses: 8
    Dernier message: 15/12/2006, 17h15
  3. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 19h30
  4. Réponses: 4
    Dernier message: 01/05/2006, 22h53
  5. Réponses: 5
    Dernier message: 10/05/2005, 10h22

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