| 12
 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
 
 | #include "windows.h"
 
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) 
{
    switch(message) 
    { 
        case WM_KEYDOWN : 
             PostQuitMessage(0);
             break;
 
        case WM_DESTROY : 
             PostQuitMessage(0); // ici, on intercepte le message de destruction
             break;
 
        case WM_PAINT : // dessin de la zone client de l'application
        {
            PAINTSTRUCT PaintStruct; 
            HDC PaintDC=BeginPaint( hwnd, &PaintStruct ); 
            EndPaint( hwnd, &PaintStruct );
        }
        break;
    }
    return DefWindowProc( hwnd, message, wParam, lParam );
}
 
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpszCmpParam,int nCmdShow) 
{
    WNDCLASS W; // structure de classe de fenêtre
    HWND hwnd;
    LPSTR Name = "Exemple d'Application";
    MSG msg;
 
    // remplissage de la structure de classe    
    memset( &W, 0, sizeof(WNDCLASS) );
    W.style = CS_HREDRAW | CS_VREDRAW;
    W.hInstance = hInst;
    W.lpszClassName = Name;
    W.hbrBackground =(HBRUSH) COLOR_WINDOW;
    W.lpfnWndProc = WndProc; // lien vers la procédure de fenêtre
    RegisterClass( &W ); // enregistrement dans Windows de la structure
 
    // Création de la fenêtre avec toutes les options nécessaires
    hwnd = CreateWindowEx( 0, Name, Name, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, 0, 0, 300, 300, 
		NULL, NULL, hInst, NULL ); 
 
    // Affichage de la fenêtre
    ShowWindow( hwnd, nCmdShow ); 
    UpdateWindow( hwnd );
 
    // Boucle d'écoute des messages
    while( GetMessage( &msg, NULL, 0, 0) ) 
    { 
        TranslateMessage( &msg ); 
        DispatchMessage( &msg );
    }
    return msg.wParam; 
} |