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 :

taille du curseur de scrollbar dans ChildView


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut taille du curseur de scrollbar dans ChildView
    Bonjour,

    Je souhaite realiser une application MFC multi-fenetre mais sans le modele vue/components.
    Ca j'y arrive.Maintenant dans les fenetres childview, je fais mon propre traitement, on pourrait comparer a l'affichage d'une map.

    Cependant il arrive que la map soit plus grande que ma vue et dans ce cas je souhaiterai avoir des scrollbars verticales et horizontale.
    Ajouter les scrollbar, c'est fait.


    Le probleme c'est que je n'arrive pas a trouver comment modifier la taille du curseur de la scrollbar(le truc qu'on fait glisser), il reste toujours a une taille neutre.

    Sur l'image encadre en rouge ce que j'ai , en vert ce que je souhaiterai.
    Je voudrai le calculer moi meme par rapport a la taille de la map/fenetre.

    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    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,
    tu as fixé les informations pour la scrollbar (SetScrollInfo) ?
    après il faut fixer sa positionavec SetScrollPos.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Bonjour,

    Oui oui, j'ai fait tout ca, en fait techniquement ca marche. C'est juste niveau esthetique.
    Dans tout les logiciels, si j'ai deux fois plus de donnes a afficher que de place dans ma fenetre, le curseur vaudra la moitie de la fenetre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    || curseur
    | vide
     
    ^
    ||
    ||
    |
    |
    V
    Alors que chez moi que j'ai deux fois ou mille fois plus de donnees, le curseur fait toujours la meme taille, en fait la taille du curseur ne represente pas la taille de mon affichage, aucun lien entre eux.

    PS: je dessine dans la fonction Paint avec le dc.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Il me semble que la taille de la scroll est liée au rapport entre la taille d'une page (SCROLLINFO::nPage) et la taille totale (SCROLLINFO::nMax-SCROLLINFO::nMin). Cf ici.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Bonjour,
    Merci je teste et je vous tiens au courant.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Bonjour,

    Ca n'a pas marche, voici mon morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) 
    {
    	if (!CWnd::PreCreateWindow(cs))
    		return FALSE;
     
    	cs.dwExStyle |= WS_EX_CLIENTEDGE;
    	cs.style &= ~WS_BORDER;
    	cs.style |= WS_VSCROLL;
    	cs.style |= WS_HSCROLL;
    	cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 
    		::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);
     
    	SCROLLINFO info;
    	info.cbSize = sizeof(SCROLLINFO);
    	info.fMask = SIF_PAGE;
    	info.nMin = 0;
    	info.nMax = 1000;
    	info.nPage = 100;
    	info.nPos = 0;
    	info.nTrackPos = 0;
     
    	SetScrollInfo(1, &info);
     
    	return TRUE;
    }
    J'ai essayé de jouer avec les valeurs mais en vain, la taille de ma barre de scroll ne change jamais!

  7. #7
    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
    salut,

    dans PreCreateWindow() ta fenetre n'existe pas encore ! donc normal que ça ne fonctionne pas ...

    normalement on calcule les Scrollbars dans un OnSize() (WM_SIZE) puisque le fait de redimensionner la fenetre va changer la valeur SCROLLINFO::nPage ...

    @+

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut

    Ca me parait tellement evident maintenant!
    Merci bien!

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

Discussions similaires

  1. Scrollbar dans Frame: Position par défaut du curseur
    Par Ok371 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2010, 15h51
  2. taille de la scrollbar dans un scrolledcomposite
    Par elekis dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 29/10/2009, 18h43
  3. Réponses: 14
    Dernier message: 04/11/2008, 10h25
  4. Taille du curseur d'une scrollbar
    Par stof dans le forum MFC
    Réponses: 3
    Dernier message: 28/06/2005, 14h43
  5. Réponses: 2
    Dernier message: 18/12/2003, 23h12

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