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 :

Utiliser scrollbar d'une ListBox par le code


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Utiliser scrollbar d'une ListBox par le code
    Bonjour à tous,

    Je suis confrontée à un soucis dont je ne trouve pas de solution malgré mes recherches.

    J'utilise le C++ dans Visual Studio, avec les MFC.

    J'ai une dialogue qui contient une CListBox (enfin une classe à moi qui en hérite)
    Cette CListBox a une scrollbar verticale qui s'affiche quand c'est nécessaire, en fonction de la quantité de données à afficher.
    Les données que j'affiche sont cycliques, genre :
    Truc 1
    donnéeA
    donnéeB
    Truc2
    donnéeA
    donnéeB
    Truc3
    donnéeA
    donnéeB

    L'idée, c'est de pouvoir proposer un bouton pour ce déplacer de la ligne "truc1" à la ligne "truc2" directement, etc...

    J'ai donc fait des recherches pour utiliser la scrollbar via le code, et j'y parviens avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_ListData.SetScrollPos(SB_VERT,50,TRUE);
    (pour l'instant, je ne me suis pas préoccupée de me placer au bon endroit, mais juste de réaliser un déplacement de la scrollbar ET des données)

    Cependant cette solution me permet de déplacer la scrollbar, MAIS les données ne sont pas mises à jour, et aucun déplacement n'a lieu :
    C'est-à-dire que si la première ligne affichée était "Truc1", après le déplacement de la scroll, la première ligne affichée est la même alors que je voudrais que ce soit :
    - ici, l'élément en position 50 qui soit affiché
    - à terme, la ligne "Truc2"

    Est-ce que quelqu'un à des idées, car là, je suis à court...
    Merci à tous pour votre aide.
    ++

  2. #2
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Salut à tous,

    Ca y est, j'ai enfin trouvé comment faire ce que je voulais.

    Je m'y prennais à l'envers :
    je voulais bouger la scroll pour impliquer le déplacement des lignes de la listBox, mais il faut faire le contraire :
    modifier l'index de la donnée placée en haut de la zone la listBox, ce qui déplacera la scroll automatiquement.

    Pour cela, j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_ListData.SetTopIndex(newIndex);
    avec newIndex le numéro de la ligne à placer en haut de la zone de la ListBox.

    Bonne continuation à tous !

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

Discussions similaires

  1. [VBA-E] Ajouter une reference par le code
    Par mustang-ffw02 dans le forum Installation, Déploiement et Sécurité
    Réponses: 12
    Dernier message: 21/11/2006, 19h28
  2. [VB6] Scrollbar d'une listbox
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 07/04/2006, 11h18
  3. [Forms 6i] Exécuter une lov par le code
    Par macben dans le forum Oracle
    Réponses: 2
    Dernier message: 02/02/2006, 17h04
  4. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39
  5. [D6] Utiliser OnDrawItem d'une ListBox !?
    Par Lung dans le forum Composants VCL
    Réponses: 7
    Dernier message: 17/05/2005, 10h21

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