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] SetCurSel


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 110
    Par défaut [MFC] SetCurSel
    Salut,
    J'essaye d'utiliser : SetCurSel. La première fois ça marche mais aprés il refuse de changer sa sélection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	UpdateData(true);
    	choixSelect = m_choixSelect;
    	// Modification de la slection
    	if(choixSelect.GetLength() != 0)
    	{
    		int index = PlaceElement();
    		m_listChoix.SetCurSel(index);
    	}
    	UpdateData(false);
    index renvoit la bonne valeur à chaque fois j'ai vérifié!
    Est-ce que quelqu'un a une idée???
    Merci d'avance.

  2. #2
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Pour en savoir plus rajoutes un GetLastError après le SetCurSel.

    Tu devrais aussi récupérer la valeur de retour de SetCurSel.

    Au vu du code, je ne vois pas mieux.

  3. #3
    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
    Citation Envoyé par Caine
    Pour en savoir plus rajoutes un GetLastError après le SetCurSel.

    Tu devrais aussi récupérer la valeur de retour de SetCurSel.

    Au vu du code, je ne vois pas mieux.
    SetCursel ne positionne pas GetLastError ...

    sinon le updateData de la fin est inutile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UpdateData(true);
       choixSelect = m_choixSelect;
       // Modification de la slection
       if(choixSelect.GetLength() != 0)
       {
          int index = PlaceElement();
          m_listChoix.SetFocus();
          m_listChoix.SetCurSel(index);
       }

  4. #4
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Citation Envoyé par farscape
    Citation Envoyé par Caine
    Pour en savoir plus rajoutes un GetLastError après le SetCurSel.

    Tu devrais aussi récupérer la valeur de retour de SetCurSel.

    Au vu du code, je ne vois pas mieux.
    SetCursel ne positionne pas GetLastError ...
    Oui, mais il peut y avoir un autre problème, le comportement de SetCurSel étant un effet de bord. J'aurais du préciser ma pensée.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 110
    Par défaut
    C'est ma foi fort étrange!
    SetCurSel me renvoit le bon résultat et GetLastError me renvoit "opération réussi".
    Ce qui veut dire que tout se passe bien. Pourtant ça ne marche toujours pas!!!

  6. #6
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Comment déduits-tu que l'opération a échouée ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 110
    Par défaut
    Je le déduis car il ne change pas l'élèment sélectionné. Pourquoi :

  8. #8
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    avant de chercher GetLastError, il faut regarder ce que retournent les methodes (si elles retournent quelques choses) donc SetCurSel retourne quoi ???

    un truc différent de -1 si tout s'est bien passé

    et un m_listChoix.UpdateWindow() apres (à tout hazard...) ???

  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
    salut,
    2 possibilités :
    le constat est faux : ton indice est erroné et SetCurSel renvoie LB_ERR . (note les indices commencent à 0 ).
    ta listbox est en mode MultiSelection et a ce moment la c'est SetSel qu'il faut utiliser et non SetCurSel.


  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 110
    Par défaut
    Merci à tous.
    Il fallait que je rajoute UpdateWindow() et que j'enlève le UpdateData(false).

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 07h38
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Réponses: 2
    Dernier message: 10/06/2002, 11h03
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2002, 07h36

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