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 :

pb de réinialisation d'une CCombobox


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut pb de réinialisation d'une CCombobox
    bonjour, je suis un petit nouveau
    quelqu'un pourrait il m'aider à trouver un bout de code pour vider un CCombobox au démarrage de l'application
    j'utilise le code suivant pour vider ma combo appelée Cfichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CString CFichiers::DeleteString()
     
    CFichiers.ResetContent() ;
     
    CComboBox::ResetContent
     void ResetContent( );
    à la compilation il me met 3 erreurs dont voici la 1ère :

    missing ';' before identifier 'CFichiers'

    merci d'avance

  2. #2
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Eh bien, il a raison, il manque bien un ";"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut pb de combo
    merci pour la réponse, j'avais bien compris qu'il manquait un ";" mais ou ???

    merci

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Après le CFichiers:eleteString(), il manque un ";"
    De plus, après
    "CComboBox::ResetContent", il manque sûrement quelquechose aussi (des parenthèses ?)

    Au fait c'est qui ce code ? Je ne suis pas sûr qu'il se compile ou alors qu'il fasse quelquechose d'utile
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  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
    Par défaut
    salut,
    j'ai du mal a comprendre ces lignes de codes...
    notamment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CString CFichiers::DeleteString()
    CFichiers c'est quoi une cstring une combobox?
    si c'est une variable ce n'est pas très judicieux de donner un nom qui ressemble a un nom de classe...

  6. #6
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Citation Envoyé par mymeal
    merci pour la réponse, j'avais bien compris qu'il manquait un ";" mais ou ???

    merci
    Vu la longueur du code, t'aurais bien pu le trouver tout seul

    Au fait, ram_0000 et farscape ont raison, ce code, c'est du grand n'importe quoi

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut pb de combo
    merci à tous pour vos réponses

    je vous rappelle que je débute et que je suis peut être un peu neuneu

    pour info CFichiers est le nom de ma combo

    le code "n'importe quoi", je l'ai trouvé sur la fac à cette adresse :

    http://cpp.developpez.com/faq/vc/ind...boDeleteString

    je l'ai surement mal interprété majgré que j'ai essayé les 2 solutions

    en faisant la 1ère, j'ai encore plus d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CComboBox::DeleteString
     
    int DeleteString( UINT nIndex );
     for (int i=0;i < CFichiers.GetCount();i++)
    {
     
       CFichiers.DeleteString( i );
     }
    error C2144: syntax error : missing ';' before type 'int'
    error C2501: 'CComboBox:eleteString' : missing storage-class or type specifiers
    error C2350: 'CComboBox:eleteString' is not a static member
    fatal error C1004: unexpected end of file found

    c'est surement très simple pour vous mais je percute pas quelque part

    merci d'avance pour vos conseils éclairés

  8. #8
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Ce qu'il fallait copier c'est soit:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i=0;i < MyComboBox.GetCount();i++)
    {
     
       MyComboBox.DeleteString( i );
    }
    soit
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyComboBox.ResetContent() ;
    Les autres, ce sont les prototypes de ces deux méthodes, à savoir
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CComboBox::DeleteString
    int DeleteString( UINT nIndex );
    pour DeleteString()
    et
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CComboBox::ResetContent
    void ResetContent( );
    pour ResetContent()

  9. #9
    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
    Par défaut
    la première ligne dans la faq c'est pour montrer le prototype de la fonction dans la classe....
    [edit]
    grillé
    [/edit]

  10. #10
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    [edit]
    grillé aussi
    [/edit]

    Si ta ComboBox s'appelle CFichiers, la commande pour le vider est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CFichiers.ResetContent();
    et c'est tout.

    J'ai retrouvé la page de la FAQ dans laquelle tu as trouvé ton code et effectivement, c'est un problème d'interprétation. C'est bien le copier/coller mais il faut chercher à comprendre pour que cela soit utile. J'ai recopié ci dessous ce que tu voies dans la FAQ et jy' ai ajouté les explications nécessaire à la compréhension

    Code Méthode DeleteString() de la classe CComboBox et en dessous, le prototype de cette fonction : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CComboBox::DeleteString
    int DeleteString( UINT nIndex );

    Code Exemple de code valide utilisant à la fois DeleteString() et ResetContent() : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (int i=0;i < MyComboBox.GetCount();i++)
    {
     
       MyComboBox.DeleteString( i );
    }
    // Ce même code peut être écrit de la manière suivante :
    MyComboBox.ResetContent() ;

    Code Méthode ResetContent() de la classe CComboBox et en dessous, le prototype de cette fonction : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CComboBox::ResetContent
    void ResetContent( );

    J'espère que c'est plus clair comme cela
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  11. #11
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    et vous trouvez que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i=0;i < MyComboBox.GetCount();i++)
    {
       MyComboBox.DeleteString( i );
    }
    c'est équivalent à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Ce même code peut être écrit de la manière suivante :
    MyComboBox.ResetContent() ;
    ???

    @+

  12. #12
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    a bien y réfléchir non car il y a un bug dans le code. La doc MSDN présente le même bug.
    un code correct est fourni ici pour la CComboBox, il faut effacer par la fin sinon, on efface pas tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Delete every item from the combo box.
    for (int i = pmyComboBox->GetCount()-1; i >= 0; i--)
    {
       pmyComboBox->DeleteString( i );
    }
    alors que le code pour la CListBox est mauvais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Delete every other item from the list box.
    for (int i=0;i < pmyListBox->GetCount();i++)
    {
       pmyListBox->DeleteString( i );
    }
    Par contre, le bon code est fonctionnellement identique à ResetContent(). Il est juste plus long à écrire, avec pottentiellement des bugs (la preuve) et peut être aussi plus long à s'exécuter
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2008, 13h04
  2. Réponses: 2
    Dernier message: 03/05/2008, 11h45
  3. Problème de remplissage d'une CComboBox..
    Par squale32 dans le forum MFC
    Réponses: 5
    Dernier message: 19/06/2007, 14h34
  4. changement largeur scrollbar d'une Ccombobox
    Par eomer212 dans le forum MFC
    Réponses: 1
    Dernier message: 05/05/2007, 22h27
  5. PB avec une CComboBox qui vaut 0x00000000 !!
    Par chaser_T dans le forum MFC
    Réponses: 1
    Dernier message: 29/12/2005, 18h29

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