[prog-it] progressBar

  • From: "z3lig" <mailmaxi@xxxxxxxxx>
  • To: <prog-it@xxxxxxxxxxxxx>
  • Date: Wed, 16 Jan 2002 23:12:27 +0100

Ciao a tutti,
eccovi un altro problema :P
Vorrei realizzare un programmino in windows che mi crea una "progressbar",
mi basterebbe avere anche un esempio semplice, tipo una barra che cresce
all'incrementarsi di una variabile in un ciclo for, tipo
for(i=0; i<100; i++)
......

in rete per ora non sono riuscito a trovare esempi di questo tipo,
ho letto un po' la API reference e se non ho capito male
devo prima crearmi un'altra finestra dove inserire la progressbar
che poi creero' sempre con la API createWindowsEx credo .-\

ho trovato l'esempio sotto e l'ho compilato e funziona,

(con il gcc www.mingw.org basta fare:
gcc -o esempio esempio.c -mwindows )

ma e' una semplice finestra con dentro una scritta....
.....puo' essere un buon punto di partenza?
Qualcuno sa darmi qualche dritta?


=============================
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

static char gszClassName[]  = "MyWindowClass";
static HINSTANCE ghInstance = NULL;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
lpCmdLine, int nCmdShow) {
        WNDCLASSEX WndClass;
        HWND hwnd;
        MSG Msg;

        ghInstance = hInstance;

        WndClass.cbSize        = sizeof(WNDCLASSEX);
        WndClass.style         = CS_CLASSDC;
        WndClass.lpfnWndProc   = WndProc;
        WndClass.cbClsExtra    = 0;
        WndClass.cbWndExtra    = 0;
        WndClass.hInstance     = ghInstance;
        WndClass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
        WndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
        WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
        WndClass.lpszMenuName  = NULL;
        WndClass.lpszClassName = gszClassName;
        WndClass.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

        if(!RegisterClassEx(&WndClass)) {
                MessageBox(0, "Window Registration Failed!", "Error!",
MB_ICONSTOP | MB_OK);
                return 0;
        }

        hwnd = CreateWindowEx(
                WS_EX_STATICEDGE,
                gszClassName,
                "Windows Title",
                WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT, CW_USEDEFAULT,
                320, 240,
                NULL, NULL,
                ghInstance,
                NULL);

        if(hwnd == NULL) {
                MessageBox(0, "Window Creation Failed!", "Error!",
MB_ICONSTOP | MB_OK);
                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 Message, WPARAM wParam, LPARAM
lParam) {
        HDC hdc;
        PAINTSTRUCT ps;
        LPSTR szMessage = "Hello World";

        switch(Message) {
                case WM_PAINT:
                        hdc = BeginPaint(hwnd, &ps);
                        TextOut(hdc, 70, 50, szMessage, strlen(szMessage));
                        EndPaint(hwnd, &ps);
                        break;
                case WM_CLOSE:
                        DestroyWindow(hwnd);
                        break;
                case WM_DESTROY:
                        PostQuitMessage(0);
                        break;
                default:
                        return DefWindowProc(hwnd, Message, wParam, lParam);
        }
        return 0;
}

=============================

ciao

z3lig



Other related posts:

  • » [prog-it] progressBar