Partage
  • Partager sur Facebook
  • Partager sur Twitter

faire un programme dans une fenetre ?

Sujet résolu
    3 décembre 2005 à 13:13:33

    voila, j ai essayer de faire un programme dans une fenetre. est ce que qqn peut me dire comment faire, enfin ou est ce que je doit ecrire mon code.


    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>

    /* Declare Windows procedure */
    LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
    /* Make the class name into a global variable */
    char szClassName[ ] = "calculatrice";
    int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)

    {

        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */

        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof(WNDCLASSEX);

        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL; /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use light-gray as the background of the window */
        wincl.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);

        /* Register the window class, if fail quit the program */
        if(!RegisterClassEx(&wincl)) return 0;

        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx(
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Calculatrice",         /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
               printf("bienvenu dans la calculatrice!");
        /* Make the window visible on the screen */
        ShowWindow(hwnd, nFunsterStil);
        /* Run the message loop. It will run until GetMessage( ) returns 0 */
        while(GetMessage(&messages, NULL, 0, 0))
        {
               /* Translate virtual-key messages into character messages */
               TranslateMessage(&messages);
               /* Send message to WindowProcedure */
               DispatchMessage(&messages);
        }

        /* The program return-value is 0 - The value that PostQuitMessage( ) gave */
        return messages.wParam;
    }

    /* This function is called by the Windows function DispatchMessage( ) */
    LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
               case WM_DESTROY:
               PostQuitMessage(0);        /* send a WM_QUIT to the message queue */
               break;
               default:                   /* for messages that we don't deal with */
               return DefWindowProc(hwnd, message, wParam, lParam);
        }
        printf("bienvenu dans la calculette");
        return 0;
    }


    mon programme ouvre bien une fenetre qui s appelle calculette, mais il n affiche pas le texte "bienvenu dans la calculatrice"
    comment faire?

    merci d avance
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2005 à 13:24:10

      printf est une commande console, c'est-à-dire que ça écrit quelque chose dans la console mais jamais dans la fenêtre. Pour ça, il faudrait créer un label en utilisant les API windows ! Mais l'erreur que tu as faite me dit bien que tu dois être débutant en C/C++. Alors ne fous pas la charrue avant les boeufs, avant de créer une appli windows , apprend à vraiment bien maîtriser la console. La fenêtre c'est juste pour faire joli, c'est pas vraiment important.
      Je te donne tout de même ce lien pour plus tard, ou pour que tu vois un peu comment ça marche ;) :

      http://chgi.developpez.com/windows/
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2005 à 13:29:03

        merci beaucoup, evidemment je suis peu etre un peu trop presse ;)
        merci pour ton lien.
        • Partager sur Facebook
        • Partager sur Twitter

        faire un programme dans une fenetre ?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown