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 :

scrolling vertical et horizontal


Sujet :

MFC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Résolu]scrolling vertical et horizontal
    bonjour tout le monde j'ai un problème concernant l'affichage d'une image d'arrière plan
    au fait le problème se pose sutout quand je redimensionne ma fenêtre et j'essaye de la parcourir avec les scrolls bars au fait quand je clique directement sur les scroll bar (que se soit vertical ou horizontal) j'arrive bien a capter la position du scroll mais quand j'essaye de cliquer sur les boutons de la fenêtre qui font bouger les scrolls bars j'ai toujours une position nulle du scroll qui est retourné je ne sais pas pourquoi
    voila en gros ce que je fais :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    void MyFormView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
     
    switch (nSBCode)
    {
    case SB_TOP:
    sourcex = 0;
    break;
    case SB_BOTTOM:
    sourcex = INT_MAX;
    break;
    case SB_THUMBTRACK:
    sourcex= nPos;//la il entre lorsque je clique directement sur le scroll et  
                           //ca marche j'obtient la bonne nPos
    break;
    case SB_LINEUP:
    sourcex = nPos;//et la lorsque je clique sur le boutton au dessus du scroll 
                            //et nPos est toujours 0?????
    break;
    case SB_LINEDOWN:
    sourcex = nPos;//et la lorsque je clique sur le boutton au dessous du 
                           //scroll et nPos est toujours 0????
    break;
    }	
     
    CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
    }
     
     
    CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
    }
     
    void MyFormView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
    switch (nSBCode)
    {
    case SB_TOP:
    sourcey = 0;
    break;
    case SB_BOTTOM:
    sourcey = INT_MAX;
    break;
    case SB_THUMBTRACK:
    sourcey = nPos;//la il entre lorsque je clique directement sur le scroll et 
                            //ca marche j'obtient la bonne nPos
    break;
    case SB_LINEUP:
    sourcey = nPos;//et la lorsque je clique sur le boutton au dessus du scroll 
                            //et nPos est toujours 0?????
    break;
    case SB_LINEDOWN:
    sourcey = nPos;//et la lorsque je clique sur le boutton au dessous du 
                            //scroll et nPos est toujours 0????
    break;
    }
    CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
    }
     
     
    void MyFormView::OnPaint() 
    {
    	CPaintDC dc(this);
    	CRect rc; 
    	GetClientRect (rc);
    	dc.BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&m_MemDC,sourcex,sourcey,SRCCOPY);//m_MemDC contient toute 
                                                                   //l'image a dessiner
    }
    a quoi c'est dû ca je ne sais pas exactement comment windows gère ca surtout que je si quelqu'un a une idée ladessus je lui serai tres reconnaissanten'ai pas besoin de definir un control

    merci d'avance

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    nPos n'est valide que pour les messages
    SB_THUMBPOSITION ou SB_THUMBTRACK

    Comme une CFormView derive de CScrollView, pourquoi
    n'utiliseriez vous pas la fonction GetScrollPosition( ) dans
    le OnPaint() plutot que de faire le calcul dans les OnXScroll

    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
    void MyFormView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    { 
     
        CFormView::OnHScroll(nSBCode, nPos, pScrollBar); 
    } 
     
    void MyFormView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    { 
        CFormView::OnHScroll(nSBCode, nPos, pScrollBar); 
    } 
     
     
    void MyFormView::OnPaint() 
    { 
       CPaintDC dc(this); 
       CRect rc; 
       CPoint pt = GetScrollPosition();
       GetClientRect (rc); 
       dc.BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&m_MemDC,pt.x,pt.y,SRCCOPY);//m_MemDC contient toute 
                                                                   //l'image a dessiner 
    }
    Salut

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    oui merci beaucoup ca marche !!!

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

Discussions similaires

  1. Forcer scroll vertical en empechant scroll horizontal
    Par calitom dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 07/11/2011, 10h39
  2. Scroll vertical/horizontal checkedlistbox
    Par lorine dans le forum C#
    Réponses: 2
    Dernier message: 15/11/2009, 16h12
  3. [winAPI] Scrolling vertical listbox ?
    Par kidpaddle2 dans le forum Windows
    Réponses: 2
    Dernier message: 22/05/2006, 18h57
  4. [IFrame] Avoir seulement un scroll vertical
    Par Etanne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/09/2005, 11h33
  5. [scroll] bloquer la horizontal scrollbar
    Par Husqvarna dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 12/09/2005, 11h57

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