关于 CreateCompatibleDC 函数的有关问题,求教

关于 CreateCompatibleDC 函数的问题,求教!
void   fun(HDC     hdc)
{
        HDC     memdc;
        HBITMAP     hNewBmp;

      memdc   =   CreateCompatibleDC(hdc);
      hNewBmp   =   CreateCompatibleBitmap(hdc,   50,   50);
      hOrigBmp   =   GetCurrentObject(memdc,   OBJ_BITMAP);
      SelectObject(memdc,   hNewBmp);
      BitBlt(memdc,   0,   0,   50,   50,   hdc,   0,   0,   SRCCOPY);
     
      return;
}

上面代码中,为什么必须为memdc创建一个新位图后BitBlt函数才有效呢?如果像下面这样,直接用memdc的最初位图,BitBlt函数就没有效果,为什么呢???

      memdc   =   CreateCompatibleDC(hdc);
      BitBlt(memdc,   0,   0,   50,   50,   hdc,   0,   0,   SRCCOPY);


------解决方案--------------------
memdc = CreateCompatibleDC(hdc); 后memdc中的bitmap很小,没什么用
引用
When the memory DC is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high