MFC 双缓冲,该如何处理

MFC 双缓冲
在onPaint里调用DrawBK函数,未能正确显示图片,谢谢
C/C++ code

void DrawBMP(HDC hDstDC, CString strPath)
{
    HDC hDC;
    HBITMAP hBmp;
    HBITMAP hOldBmp;
    BITMAP bm;
    hDC = CreateCompatibleDC(NULL);

    hBmp = (HBITMAP)LoadImage(NULL, strPath, IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_CREATEDIBSECTION);

    hOldBmp = (HBITMAP)SelectObject(hDC ,hBmp);

    GetObject(hBmp, sizeof(BITMAP), &bm);

    BitBlt(hDstDC, 0, 0, bm.bmWidth, bm.bmHeight, hDC, 0, 0,SRCCOPY);

    SelectObject(hDC ,hOldBmp);
    DeleteObject(hDC);
    DeleteObject(hBmp);
}

void DrawBK(CPaintDC& dc)
{
    HDC hMemDC;
    HDC hDC;
    hMemDC = CreateCompatibleDC(NULL);
    DrawBMP(hMemDC, L"D:\\1.BMP");

    hDC = dc.GetSafeHdc();

    BitBlt(hDC, 0, 0, 1000, 1000, hMemDC, 0, 0, SRCCOPY);

    DeleteObject(hMemDC);
    // dc.BitBlt(330,30,5000,5000,&MemDC,0,0,SRCCOPY);
}




------解决方案--------------------
都说没有画布了

C/C++ code

void DrawBK(CPaintDC& dc)
{    
  HDC hDC = dc.GetSafeHdc();
  int nWidth = dc.GetDeviceCaps(HORZRES);
  int nHeight = dc.GetDeviceCaps(VERTRES);
  
  HDC hMemDC = CreateCompatibleDC(hDC);
  HBITMAP hBitmap = CreateCompatibleBitmap(hDC, nWidth, nHeight);  
  HBITMAP hOldBitamp = (HBITMAP)SelectObject(hMemDC, hBitmap);   
  
  DrawBMP(hMemDC, L"D:\\1.BMP");

  BitBlt(hDC, 0, 0, nWidth, nHeight, hMemDC, 0, 0, SRCCOPY);

  SelectObject(hMemDC, hOldBitamp);  
  DeleteObject(hBitmap);
  DeleteDC(hMemDC);
}