Salve a tutti ragazzi, ho deciso di imparare il C++.
Ho acquistato questo libro:



e mi è stato di molto aiuto per quanto riguarda i nuovi caratteri del C++ rispetto agli altri linguaggi di programmazione (già conosco benissimo PHP), però mi ha insegnato solo a creare Console Applications. Siccome vorrei incominciare a fare programmi seri con le GUI, girovagando per il forum ho trovato questo codice che un utente ha scritto:

codice:
#define STRICT
#include <windows.h>

#define MAIN_WNDCLASS   "MiaClasseFinestra"

LRESULT CALLBACK Main_WndProc (HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_CREATE: // Da quello che ho capito serve per creare oggetti di interfaccia, tipo textbox
            return 0;

        case WM_PAINT:
        {
            HDC hdc;
            PAINTSTRUCT ps;

            hdc = BeginPaint (hWnd,&ps);

            EndPaint (hWnd,&ps);
            return 0;
        }

        case WM_DESTROY:
            PostQuitMessage (0);
            return 0;

        case WM_CLOSE:
            DestroyWindow (hWnd);
            return 0;
    }

    return DefWindowProc (hWnd,uMsg,wParam,lParam);
}


INT APIENTRY WinMain (HINSTANCE hInstance,HINSTANCE hPrevious,LPSTR lpszCmdLine,INT iCmdShow)
{
    WNDCLASSEX  wcx;
    HWND        hWnd;
    MSG         msg;

    wcx.cbSize        = sizeof (wcx);
    wcx.style         = CS_HREDRAW | CS_VREDRAW;
    wcx.lpfnWndProc   = (WNDPROC) Main_WndProc;
    wcx.cbClsExtra    = 0;
    wcx.cbWndExtra    = 0;
    wcx.hInstance     = hInstance;
    wcx.hIcon         = NULL;
    wcx.hIconSm       = NULL;
    wcx.hCursor       = LoadCursor (NULL,IDC_ARROW);
    wcx.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);
    wcx.lpszMenuName  = NULL;
    wcx.lpszClassName = MAIN_WNDCLASS;

    if (!RegisterClassEx (&wcx))
    {
        MessageBox (NULL,"Errore nella registrazione della classe",
                    "ERRORE",MB_OK | MB_ICONEXCLAMATION);
        return 1;
    }

    hWnd = CreateWindow (MAIN_WNDCLASS,"Titolo finestra",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,300,300,NULL,NULL,hInstance,NULL); // Creazione della finestra

    if (hWnd == NULL)
    {
        MessageBox (NULL,"Errore nella creazione della finestra",
                    "ERRORE",MB_OK | MB_ICONEXCLAMATION);
        return 1;
    }

    ShowWindow (hWnd,SW_SHOWNORMAL);
    UpdateWindow (hWnd);

    while (GetMessage (&msg,NULL,0,0))
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }

    return 0;
}
Ecco ora, se qualche buon'anima inserisse abbondantissimi commenti gli sarei grato per tutta la vita.