Jak pomalować bitmapkę która jest w zasobach.

Wiem że trzeba stworzyć zmienną HBITMAP i potem tam wsadzić rysunek a następnie użyć funkcji BitBlt.
Ale jak wsadzić rysunek do tego typu. Jak ktoś zna jakiś prosty gotowiec albo może mi podesłać będe wdzięczny.
Poniżej mÓj kod ale niestety nie działa :(

//-----------------------
#include <windows.h>
#include <strstrea.h>

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

HINSTANCE hInstance1;
static HBITMAP hMapa1;
void Animacja(HWND);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmd, int iCmdShow)

{
static TCHAR szAppName[]=TEXT("Moja Klasa");
HWND hwnd; //Zmienna na uchwyt okna
MSG msg; //Struktura do przechowywania komunikatów
WNDCLASSEX wndclass; //Struktura definiujaca klasę okna

wndclass.cbSize = sizeof (wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
wndclass.hIconSm = LoadIcon (NULL, IDI_WINLOGO);

if (!RegisterClassEx(&wndclass))
{
MessageBox (NULL, "Cos jest nie tak",
szAppName, MB_ICONERROR);
return 0;
}
::hInstance1=hInstance;

hwnd = CreateWindow (szAppName,
"Moje okno",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
::hInstance1,
// hInstance,
NULL);

ShowWindow (hwnd, iCmdShow);

UpdateWindow (hwnd);

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

}
return msg.wParam;
}

void Animacja(HWND hwnd)
{
HDC hdc;
PAINTSTRUCT ps;

RECT rect;
HDC hCel = GetDC(hwnd);
HDC hZrodlo = CreateCompatibleDC(hCel);
SelectObject(hZrodlo, hMapa1);
BitBlt(hCel, 0, 0, 20, 250, hZrodlo, 0, 0, SRCCOPY);
ReleaseDC(hwnd, hCel);
DeleteDC(hZrodlo);

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
char buf[50];
ostrstream strum(buf, sizeof(buf));
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch (message)
{
case WM_CREATE:
hMapa1 = LoadBitmap(hInstance1, "IDB_BITMAP1");
return 0;

case WM_PAINT:
/*
hdc = BeginPaint (hwnd, &ps);

   EndPaint (hwnd, &ps);

*/
return 0;

case WM_DESTROY:
DeleteObject(hMapa1);
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam);
}

// KONIEC