Как сделать фоновое изображение

В сообщение WM_ERASEBKGND пишем следующее:
    BITMAP bm; 
   
HDC hdcMem;
   
hdcMem=CreateCompatibleDC(hdc);
   
SelectObject(hdcMem, back);
   
GetObject(back, sizeof(BITMAP), (LPVOID)&bm);
   
RECT r;
   
GetClientRect(hwnd, &r);
   
if (!bm.bmWidth || !bm.bmHeight)
       
return;

   
int w=r.right-r.left,
       
h=r.bottom-r.top,
       
bw=bm.bmWidth,
       
bh=bm.bmHeight;

   
for(int i = 0; i < w; i += bw)
       
for(int j = 0; j < h; j += bh)
           
BitBlt(hdc, i, j, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);

   
DeleteDC(hdcmem);
Параметры:
HDC hdc; // указатель на DC
HWND hwnd; // указатель на окно
HBITMAP back; // указатель на картинку, которую будем рисовать в фоне