Bonjour
(code visual c++ api win32)
Tout dabors un grand GRAND Merci à Médinoc pour la précedente réponse.
J'ai placée sur ma fenêtre principal une scrollbar vertical et une horizontal. Elle fonction. J'aimerais savoir s'il existe une fonction toute faite qui fait le rapport en le déplacement de la scrollbar et le déplacement de la zone client et se bien sur en fonction de la taille de la zone client.(La fenêtre peu-être redimensionné)
Pour ceux qui veule le code de la scrollbar pour s'en inspirer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
//variable déclaré en global.
SCROLLINFO si;
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	int save_position_vertical = 0;    // Permet de calculer le déplacement de la scrollbar pour y adapter la zone client
	int save_position_horizontal = 0;  // Permet de calculer le déplacement de la scrollbar pour y adapter la zone client
	                                   // La zone client étant la fenêtre principal

switch (uMsg)
    {
		case WM_CREATE:
        {      
			ZeroMemory(&si, sizeof(SCROLLINFO));
			si.cbSize = sizeof(si);
			si.fMask  = SIF_RANGE | SIF_POS;
			si.nMin   = 0;
			si.nMax   = 100;
			si.nPos   = 0;
			SetScrollInfo(hwnd, SB_HORZ, &si, FALSE);
			break;
		 }

		case WM_HSCROLL : 
			GetScrollInfo(hwnd, SB_HORZ, &si);
			save_position_horizontal = si.nPos;
			switch (LOWORD(wParam))
			{
				case SB_PAGEUP : si.nPos-=10;
                break;

				case SB_PAGEDOWN : si.nPos+=10;
                break;

				case SB_LINEUP : si.nPos-=10;
                break;

                case SB_LINEDOWN : si.nPos +=10;
                break;

				case SB_THUMBPOSITION : si.nPos = HIWORD(wParam);
                break;
            }
			si.fMask = SIF_POS;

			// permet de mettre la jour les infos sur la scroll bar si besoin est
            SetScrollInfo(hwnd,SB_HORZ,&si,TRUE); 

			// permet de redéssiner la zone client en fonction du déplacement de la scrollbar
            ScrollWindow(hwnd,(save_position_horizontal - si.nPos),0 , NULL, NULL);

			// permet d'aficher la scrollbar à l'endroit où elle doit l'être
            SetScrollPos(hwnd,SB_HORZ,si.nPos,TRUE);
            InvalidateRect(hwnd,NULL,TRUE); // pour que le logo soit bien déssiné
			break;
			
			
		case WM_VSCROLL : 
			GetScrollInfo(hwnd, SB_VERT, &si);
			save_position_vertical = si.nPos;
			switch (LOWORD(wParam))
			{
				case SB_PAGEUP : si.nPos-=10;
                break;

				case SB_PAGEDOWN : si.nPos+=10;
                break;

				case SB_LINEUP : si.nPos-=10;
                break;

                case SB_LINEDOWN : si.nPos +=10;
                break;

				case SB_THUMBPOSITION : si.nPos = HIWORD(wParam);
                break;
            }
			si.fMask = SIF_POS;

			// permet de mettre la jour les infos sur la scroll bar si besoin est
            SetScrollInfo(hwnd,SB_VERT,&si,TRUE);

			// permet de redéssiner la zone client en fonction du déplacement de la scrollbar
            ScrollWindow(hwnd,0, (save_position_vertical - si.nPos), NULL, NULL);

			// permet d'aficher la scrollbar à l'endroit où elle doit l'être
            SetScrollPos(hwnd,SB_VERT,si.nPos,TRUE);
            InvalidateRect(hwnd,NULL,TRUE);  // pour que le logo soit bien déssiné
			break;
...
ou si quelqu'un à une fonction à adapter, je suis preneur aussi

Merci d'avance