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 :

Problème pour l'implémentation d'une ScrollBar


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 54
    Points
    54
    Par défaut Problème pour l'implémentation d'une ScrollBar
    Salut, j'ai un soucis afin d'implémenter une ScrollBar.

    Celle-ci est implémentée dans une classe dérivée d'un CDialog, cette même classe dérivée d'un CDIalog est implémentée dans une classe dérivée d'un CView.

    Par défaut, la fenetre CDialog est plus grande que la vue de la CView, or la scrollbar, elle, est à la taille du CDialog et donc on ne voit pas son extrémité du bas qui est à l'extérieure de la vue.

    Je ne m'en sors pas et j'aimerai savoir quelle est la solution pour bien implémenter ma ScrollBar afin qu'on la voit dans sa totalité dans ma CView et que sa taille s'adapte si on modifie la taille de la fenêtre.

    Merci par avance pour vos coups de pouce!

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    tout ça est bien compliqué..
    Une CDialog n'est jamais utilisée à l'intérieur d'une CView; il faut prendre une CFormView..
    Si tu as des problèmes cela vient des attributs de la CDialog.
    Le mieux c'est d'utiliser des CScrollView et CFormView conjointement avec des splitters

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Merci pour ta réponse Mat.

    L'architecture de l'application sur laquelle on m'a demandé de travailler est ainsi. Dans la classe dérivée d'un CDialog, il y a une instruction GetParent(), je me suis trompé sur l'objet qui nous est renvoyé qui est plutôt du type CWnd. C'est un GetParent de cet objet qui nous renvoie ensuite un autre objet qui est lui de type CView.

    Quand je rajoute les instructions ShowScrollBar et EnableScrollBar dans ma classe dérivée de CDialog ou ma classe dérivée de CWnd, la ScrollBar obtenue dépasse la taille normale de l'écran, mais si je mets ces instructions dans ma CView, à ce moment la j'obtiens bien une scrollbar qui garde la taille de la fenetre en cours et qui se resize lorsque je modifie la taille de ma fenêtre.

    Quelle est la solution à adopter afin de ne pas trop chambouler l'architecture actuelle de l'application?


    Edit: j'ai oublié de préciser: dans le cas où j'affiche la ScrollBar dans la classe dérivée d'un CDialog, j'arrive cependant bien à catcher mon événement OnVScroll. Par contre, dans le cas où j'affiche la ScrollBar dans la classe dérivée d'une CView, je suis incapable de catcher le même évènement. EN résumé, d'un côté j'ai une ScrollBar qui est correctement dimensionnée mais qui est incapable de traiter mon event, de l'autre j'ai une scrollbar mal dimensionnée mais qui est capable de catcher mon event... Embetant tout ça lol

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    je n'ai toujours pas réussi à bien afficher et faire fonctionner ma scrollbar.

    Quelqu'un pourrait-il m'aider svp? Merci par avance!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Salut,

    J'ai finalement réussi à implémenter ma scrollBar correctement tout en catchant comme il se doit les évènements qui lui sont associés.

    Maintenant, j'ai un nouveau soucis... Si je déplace le curseur de ma scrollBar, puis redimensionne la fenêtre où se trouve ma scrollBar, l'affichage est par la suite tronqué, ou alors des zones de ma CDialog s'agrandissent...

    Par contre, si je ne touche pas a ma scrollBar et que je redimensionne la fenêtre, l'affichage reste correct.

    Comment faire donc pour bien gérer le redimensionnement de mes fenêtres avec ma scrollBar?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Ce problème est résolu

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

Discussions similaires

  1. [MVC] Problème pour l'implémentation
    Par Baptiste Wicht dans le forum MVC
    Réponses: 20
    Dernier message: 24/04/2007, 21h29
  2. problème pour reattacher un objet à une session
    Par K-Kaï dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/07/2006, 15h16
  3. Réponses: 28
    Dernier message: 24/05/2006, 18h20
  4. Réponses: 4
    Dernier message: 19/04/2006, 15h10
  5. problème pour l'ajout d'une clé étrangère
    Par ELKCHAOU dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/12/2005, 10h38

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