Witam, mam pytanie odnosnie ustawienia tla okna z bitmapy... Wiem ze to juz bylo wiele razy ale siedze nad tym wiecej niz nad samym programem i nici, potrzebuje poprawy kodu...

HBITMAP hbmObraz;
hbmObraz =( HBITMAP ) LoadImage( NULL, "pk", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );

case WM_ERASEBKGND:
return 0;
break;


    case WM_PAINT:
        {
            PAINTSTRUCT ps; 
            HDC hdc;
            HDC hdcNowy = CreateCompatibleDC(hdc);
            hdc = BeginPaint (hwnd, &ps);
            SelectObject( hdcNowy, hbmObraz );
            BITMAP bmInfo;
            GetObject( hbmObraz, sizeof( bmInfo ), & bmInfo );
            hdc = GetDC( hwnd );
            BitBlt( hdc, 0, 0, bmInfo.bmWidth, bmInfo.bmHeight, hdcNowy, 0, 0, SRCCOPY );
            EndPaint( hwnd, & ps );             
            ReleaseDC( hwnd, hdc );
            DeleteObject( hbmObraz );
            DeleteDC( hdcNowy ); 

        }
        break; 

Najpierw w ogole nie pokazywala mi sie bitmapa, pozniej pokazala sie ale znikala przez WM_ERASEBKGND, teraz utrzymuje sie ciagle ale nie refreszuje mi static'ow. W timerze zmieniam ich tekst i zamiast sie czyscic to naklada sie jeden na drugi... Tak jak mowie, prosze o poprawe tego kodu jezeli bylby ktos tak mily ;). Dzieki z gory ;)

Nie ma tu nikogo obeznanego w winapi? ;/

Dobra, dziala jako tako w ten sposob:

 case WM_PAINT:
        {


            PAINTSTRUCT ps; 
            HBITMAP hbmObraz;
            hbmObraz =( HBITMAP ) LoadImage( NULL, "pk", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
            HDC hdc;
            hdc = BeginPaint (hwnd, &ps);
            HDC hdcNowy = CreateCompatibleDC(hdc);
            SelectObject( hdcNowy, hbmObraz );
            BITMAP bmInfo;
            GetObject( hbmObraz, sizeof( bmInfo ), & bmInfo );
            hdc = GetDC( hwnd );
            BitBlt( hdc, 0, 0, bmInfo.bmWidth, bmInfo.bmHeight, hdcNowy, 0, 0, SRCCOPY );
            ReleaseDC( hwnd, hdc );
            DeleteObject( hbmObraz ); 
            DeleteDC( hdcNowy ); 
            EndPaint(hwnd, &ps);

        };
        break; 

Wczytywanie bitmapy w WM_PAINT to duze obciazenie, wiec zadeklarowalem zmienna globalna, wczytuje do niej w WINMAIM bitmape no i tu pojawia sie problem... Jezeli kod jest taki jak wyzej, dziala wszystko a jezeli wczytam w WinMain to znowu static'ki sie nie odswiezaja(jeden rysowany na drugim)... Gdzie wczytywac bitmape zeby bylo dobrze ?:/

case WM_ERASEBKGND:
return 1L; break;