Bonjour à tous!

alors, voila, j'ai encore un petit soucis de scrollbar :

- j'ai positionné une scrollbar dans une boite de dialogue.

- dans une classe dérivée de CDialog, il y a :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
private:
    afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
 
private:
	// Attribut
    CScrollBar ScrollRight;
- dans DoDataExchange de ma classe, il y a :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
DDX_Control(pDX, IDC_SCROLLBAR_RIGHT, ScrollRight);
- dans les message map, il y a :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
BEGIN_MESSAGE_MAP(...)
	//...
    ON_WM_VSCROLL()
END_MESSAGE_MAP()
- et voici ma fonction :

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
 
void CDlg_DCI::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    int position;
    int pos;
 
    position = pScrollBar->GetScrollPos();
 
    pos = position;
 
    switch (nSBCode)
    {
        case SB_LINEUP : //Scroll une ligne en haut.
            position -= 1;
 //           pScrollBar->SetScrollPos(position,TRUE);
            ScrollRight.SetScrollPos(position,TRUE);
            break;
 
        case SB_LINEDOWN : //Scroll une ligne en bas.
            position += 1;
  //          pScrollBar->SetScrollPos(position,TRUE);
            ScrollRight.SetScrollPos(position,TRUE);
            break;
 
        case SB_PAGEUP: //Scroll une page en haut.
            position -= 5;
 //           pScrollBar->SetScrollPos(position,TRUE); 
            ScrollRight.SetScrollPos(position,TRUE);
            break;
 
        case SB_PAGEDOWN: //Scroll une page en bas.
            position += 5;
  //          pScrollBar->SetScrollPos(position,TRUE);
            ScrollRight.SetScrollPos(position,TRUE);
            break;
 
        case SB_THUMBPOSITION: //Scroll a une position absolue.La position courante est fournie dans le deuxieme parametre.
  //          pScrollBar->SetScrollPos(nPos,TRUE);
            ScrollRight.SetScrollPos(nPos,TRUE);
            break;
 
        case SB_THUMBTRACK : //Glisse la boite de scoll a une position specifiee. La position courante est fournie par le deuxieme parametre.
 //           pScrollBar->SetScrollPos(nPos,TRUE);
            ScrollRight.SetScrollPos(nPos,TRUE);
            break;
 
         case SB_TOP: //Scroll au debut.
            break;
 
        case SB_BOTTOM: //Scroll a la fin.
            break;
 
        case SB_ENDSCROLL: //Fin de scroll.
            break;
 
    }
 
    ScrollWindow(0, (position-pos));
    UpdateData(true);
}
celà fonctionne, ma fenetre se déplace correctement, mais le curseur de ma scrollbar se remet automatiquement en haut ....

quelqu'un peut il m'aider s'il vous plait?