Bonjour,

Débutant en prog windows, je me sui servi d'un tuto de ce site pour apprendre puis j'ai essayé mes propres trucs.

ALors voila, j'ai une listbox qui devrait occuper toute la fenetre, mais quand je lance l'application, il y a une bordure restante sous la fenetre. Come ceci :



Et le plus etrange, c'est que lorsque je redimensionne la fenetre en hauteur, la bordure change de taille, peut devenir moyenne ou toute fine (c'est qu'elle est censée etre au départ), mais sans rapport avec la nouvelle taille de la fenetre.

Je fais le code minimum qui me produti cet effet :
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
#include <windows.h>

HINSTANCE hinst;
HWND hwnd;
HWND hListBox;

LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
                    LPSTR lpszArgument, int nFunsterStil)
{
    hinst = hThisInstance;
    
    MSG messages;   
    WNDCLASSEX wincl;     

    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      
    wincl.style = CS_DBLCLKS;                 
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;               
    wincl.cbClsExtra = 0;     
    wincl.cbWndExtra = 0;     
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    if (!RegisterClassEx (&wincl))
        return 0;

    hwnd = CreateWindowEx (
           0,                    
           szClassName,         
           "Resultat de la recherche",      
           WS_OVERLAPPEDWINDOW,  
           CW_USEDEFAULT,        
           CW_USEDEFAULT,        
           544,                  
           375,                  
           HWND_DESKTOP,         
           NULL,                 
           hThisInstance,        
           NULL                  
           );

    ShowWindow (hwnd, nFunsterStil);

    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return messages.wParam;
}

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{   
    switch (message)                 
    {
        case WM_CREATE:
            {
             hListBox = CreateWindowEx(WS_EX_CLIENTEDGE,"LISTBOX", "Texte", 
                                       WS_VISIBLE|WS_CHILD|LBS_SORT|LBS_NOTIFY|WS_HSCROLL|WS_VSCROLL,
                                       0, 0, 0, 0, hwnd, NULL, hinst, NULL);
             return 0;
            }        
        
        
        case WM_SIZE:
            RECT clientRect;
            GetClientRect(hwnd, &clientRect);        
            MoveWindow(hListBox, 0, 0, clientRect.right, clientRect.bottom, TRUE);
             return 0;
                                            
        case WM_DESTROY:
            PostQuitMessage (0);  
            break;
            
        default:     
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}
Il y as sans doute un truc très bête qui m'échappe, mais je cherche et je trouve pas (et ca m'agace grave ).

Si vous pouvez éclairer ma lanterne, ce serais sympa. Merci d'avance !