Newsgroup: it.comp.programmare.win32
Titolo: hellowin.c per win32

Avrei bisogno del sorgente di hellowin.c per win32.
Potete indicarmi se è possibile reperirlo in rete?
Grazie

 Grazie
non ce l'ho.
però penso che se te lo scrivo al volo va bene uguale, no? ;-)
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
#define HELLOWIN_CLASS_NAME TEXT("HelloWin_WndClass")
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wc;
    memset(&wc, 0, sizeof(WNDCLASS));
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hInstance = hInstance;
    wc.lpfnWndProc = WndProc;
    wc.lpszClassName = HELLOWIN_CLASS_NAME;
    wc.lpszMenuName = NULL;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    if(!RegisterClass(&wc))
    {
        MessageBox(NULL, TEXT("Errore in RegisterClass()"), NULL, 0);
        return 0;
    }
    HWND hWnd = CreateWindowEx(0, HELLOWIN_CLASS_NAME,
        TEXT("Hello win"), WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
        NULL, NULL, hInstance, NULL);
    if(!hWnd)
        return 0;
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    RECT rc;
    switch(Msg)
    {
    case WM_PAINT:
        BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rc);
        DrawText(ps.hdc, TEXT("Hello world"), -1, &rc, DT_CENTER);
        EndPaint(hWnd, &ps);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hWnd, Msg, wParam, lParam);
}

 ha scritto nel messaggio
news:9d4543$fvl51$1...@ID-51253.news.dfncis.de...

Grazie per il codice ma ho provato a compilarlo con bcc32 ver 5.5
ricevendone i seguenti errori.
Error E2140 Hello.c 27: Declaration is not allowed here in function WinMain
Error E2140 Hello.c 38: Declaration is not allowed here in function WinMain
Io sono un neofita e brancolo nel buio. Ogni suggerimento sarà molto
gradito.
Ciao



 gradito.
ti consiglio di leggerti il tutorial sulla prg in win32, ma prima mi sa che è meglio un buon manuale C (o C++) :)
ciao
xaero

Dopo aver vagato invano per ore e ore finalmente, grazie a voi, ho trovato
gia' pronto quello che cercavo: grazie ad antonio (che ha fatto la domanda)
e soprattutto xaero (che ha risposto)!
Per chiunque altro la cercasse riporto la versione con le correzioni per
compilatore c.
Grazie e ciao.
Alessandro.
--------------------------------------
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
#define HELLOWIN_CLASS_NAME TEXT("HelloWin_WndClass")
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR
lpCmdLine, int nCmdShow)
{
    HWND hWnd;
    WNDCLASS wc;
    MSG msg;
    memset(&wc, 0, sizeof(WNDCLASS));
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hInstance = hInstance;
    wc.lpfnWndProc = WndProc;
    wc.lpszClassName = HELLOWIN_CLASS_NAME;
    wc.lpszMenuName = NULL;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    if(!RegisterClass(&wc))
    {
        MessageBox(NULL, TEXT("Errore in RegisterClass()"), NULL, 0);
        return 0;
    }
    hWnd = CreateWindowEx(0, HELLOWIN_CLASS_NAME,
        TEXT("Hello win"), WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
        NULL, NULL, hInstance, NULL);
    if(!hWnd)
        return 0;
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    RECT rc;
    switch(Msg)
    {
    case WM_PAINT:
        BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rc);
        DrawText(ps.hdc, TEXT("Hello world"), -1, &rc, DT_CENTER);
        EndPaint(hWnd, &ps);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hWnd, Msg, wParam, lParam);
}