chi vuol essere milionario in c e il comando else

  • Autore discussione Autore discussione Z171
  • Data d'inizio Data d'inizio
Pubblicità
fidati, imparare in una sera (ma anche in un mese) ad usare la grafica in c è impossibile, mi spiace, ma è cosi....
 
ormai glielo ho dato... comunque in dev cpp c'è la scheda "nuova windows application" e con f9 mi viene questa finestra vuota. sono riuscito a modificare il nome della finestra ma non riesco a capire dove mettere il testo o dove aggiungere questo codice nel mio programma!
Codice:
#include <windows.h>
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
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 Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    /* Register the window class, and if it fails 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 */
           "Windows App",       /* 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 */
           );
    /* 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);
    }
    return 0;
}
 
Se davvero desideri programmare l'interfaccia grafica a finestra, con il codice sorgente modello che trovi in DevC++, è necessario conoscere la WinAPI per il posizionamento degli elementi e la gestione degli eventi.
Secondo me non è facile imparare questa libreria con una giornata e senza studiarla, comunque ti posto un tutorial molto semplice, magari da tradurre con qualche traduttore automatico come quello incluso in Google Chrome, Bing o Babelfish:
The Winapi (C Win32 API, No MFC) tutorial

Altrimenti una soluzione veloce e creata per il C è la libreria GTK+ (da installare a parte a differenza della WinAPI) che permette di disegnare le finestre tramite l'applicazione GLADE GUI DESIGNER (in maniera 'simile' alla progettazione del Visual Studio) postandoti anche un tutorial. Ma ripeto anche qui devi studiarti la gestione perlomeno degli eventi e dovrai configurare il compilatore (sempre più facile della WinAPI).

In alternativa si potrebbe utilizzare il Visual C# o il Visual Basic, ma se è una cosa per la scuola e sei vincolato a farlo in C dovrai rinunciare alla semplicità e estrema velocità del Visual Studio e del framework .Net.
:asd:
 
grazie per i link, per la scuola non sono vincolato al c (è l'unico linguaggio che so), ma non conosco per niente il visual basic!
 
grazie per i link, per la scuola non sono vincolato al c (è l'unico linguaggio che so), ma non conosco per niente il visual basic!

Se conosci il C, potresti scaricare Visual C# 2010 Express Edition in maniera gratuita dal sito della Microsoft. C'è da dire che C e C# (C Sharp) sono linguaggi differenti, ma rispetto al Basic la sintassi di C# è simile a quella del C. Il C# però si differenzia per essere un linguaggio orientato ad oggetti (non uguale al C++, ma simile al Java) e se sai come funziona un pochino le classi vedrai che non sarà molto complicato da imparare.

Poi ripeto meglio questo che programmare con le WinAPI e con le GTK+, per quanto quest'ultime siano più semplici rispetto alle prime.
 
Pubblicità
Pubblicità
Indietro
Top