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

Windows Discussion :

Gestion des SCROLL


Sujet :

Windows

  1. #1
    Invité
    Invité(e)
    Par défaut Gestion des SCROLL
    Bonjour à tous,

    J'ai créé une fenêtre principale contenant une WS_VSCROLL ainsi qu'une autre WS_CHILD contenant elle même une WC_SCROLLBAR, toutes les deux à l'aide de CreateWindow, mais j'ignore comment gérer ces SCROLL.
    J'ai trouvé les fonctions GetScrollInfo et SetScrollInfo fonctionnant avec la structure SCROLLINFO, mais ça ne marche pas, les curseurs restent toujours à la même place.

    La taille de ma fenêtre principale étant plus grande que l'écran, je voudrais utiliser le premier afin de me déplacer verticalement dans celle-ci.
    La deuxième se trouvant dans la fenêtre CHILD me permettrait de faire un déplacement de ce que j'affiche sur une autre fenêtre, il me faudrait donc pouvoir récupérer
    la position curseur, ainsi que savoir à quel moment les flèches gauches et droites sont actionnées.

    Quelqu'un pourrait m'indiquer les fonctions ainsi que les messages à utiliser?
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Pour commencer, il faut au moins déjà savoir que le contrôle scrollbar ne sert pas qu'à faire défiler le contenu d'une fenêtre et, le plus important, que pour faire défiler le contenu d'une fenêtre on n'a pas forcément besoin d'un scrollbar. Une application doit tout simplement fournir à l'utilisateur un moyen de naviguer dans la fenêtre (à l'aide des touches fléchées par exemple), et de réagir correctement en fonction de ses entrées. Pour faire défiler le contenu de la fenêtre, il suffit d'appeler ScrollWindow ou ScrollWindowEx. Le scrollbar est tout simplement le moyen privilégié donné à l'utilisateur pour le permettre de demander l'exécution d'un ScrollWindow(Ex). Quand l'utilisateur joue avec un scrollbar, le message WM_HSCROLL ou WM_VSCROLL est envoyé en fonction du type de scrollbar (horizontal ou vertical). C'est dans le traitement de ce message que tu dois appeler GetScrollInfo pour connaître la position actuelle du scrollbar et agir s'il le faut. SetScrollInfo ne t'es utile que lorsque tu veux positionner ton scrollbar depuis ton programme. Maintenant, consulter MSDN est la meilleure chose que tu puisses faire.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci pour ta réponse,

    Je connais très bien MSDN, j'y ai passé un certain moment avant de poster ce message.
    Merci de me confirmer que ce sont bien ces fonctions qu'il faut utiliser, ainsi que la fonction ScrollWindow(Ex), je me doutais bien de la logique d'utilisation de ces fonctions, mais mon souci, c'est que je n'arrive pas à les faire marcher correctement, serait-il possible de m'indiquer que faut-il mettre précisément dans les termes de la structure SCROLLINFO, ainsi que les termes lpRect et lpClipRect, (je pense que c'est là que je me plante) ou de me fournir un petit exemple?
    Pour info, je tiens vraiment à afficher les Scrollbar, et j'aimerais aussi qu'elles soient proportionnelles à la taille de ma fenêtre (si tenté que la fonction SetScrollInfo ne le fait pas).
    Merci d'avance.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ça y est, j'ai réussi à incorporer la fonction ScrollWindow dans mon programme, et elle marche parfaitement avec les messages WM_VSCROLL, WM_HSCROLL et les wParam SB_LINEUP , SB_PAGEUP SB_LINEDOWN, SB_PAGEDOWN et SB_ENDSCROLL. J'arrive à bien déplacer ma fenêtre comme je le souhaite. Merci à Melem pour me l'avoir indiquée.
    Mais il me reste encore la gestion du curseur scroll, que je n'arrive pas à faire, il reste toujours immobile quoique je fasse.
    Si quelqu'un pouvait m'indiquer la marche à suivre avec les fonctions SetScrollInfo et GetScrollInfo...

    Merci d'avance.

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Il suffit d'un ajouter un traitement personnalisé de l'événement SB_THUMBTRACK. Traiter ce message permet de synchroniser le mouvement du curseur et le défilement de la fenêtre. Appuie-toi toujours sur MSDN et poste le code complet de ta dernière tentative si ça ne marche toujours pas.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    C'est bon, j'ai réussi à avoir ce que je voulais, il fallait en effet que j'utilise SB_THUMBTRACK, mais mon problème principal, c'est que je ne prenais pas le LOWORD du wParam, mais le wParam tout court, ce qui faisait que mon switch(wParam) ne passait jamais pas SB_THUMBTRACK, merci aux breakpoints qui m'ont finalement permis de le voir

    Cependant je te remercie Melem pour tes indications qui m'ont été fortes utiles.

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

Discussions similaires

  1. Gestion des scroll avec molette et key
    Par ppphil dans le forum C#
    Réponses: 4
    Dernier message: 08/01/2010, 16h30
  2. Gestion des scroll bars
    Par clechenne dans le forum C#
    Réponses: 2
    Dernier message: 10/12/2008, 20h34
  3. Gestion des Callbacks sur une scrolling Bar
    Par neptune2024 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 22/11/2007, 09h31
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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