请问设置MM_LOMETRIC模式后,怎样使用双缓存,下面的代码在BitBlt后,得不到正确的客户区大小

int oldMapMode = pDC->SetMapMode(MM_LOMETRIC);

int oldBkMode = pDC->SetBkMode(TRANSPARENT);

CRect rcClient;

GetClientRect(&rcClient);

// pDC->DPtoLP(&rcClient);

pDC->SetViewportOrg(rcClient.left, rcClient.bottom);

CDC memDC; // Memory DC.

memDC.CreateCompatibleDC(pDC);

CBitmap memBitmap; // Create memory bitmap.

memBitmap.CreateCompatibleBitmap(&memDC, rcClient.Width(), rcClient.Height() );

memDC.SelectObject(&memBitmap); // Select the bitmap object.

// memDC.FillSolidRect(rcClient, pDC->GetBkColor());

pDC->BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &memDC, 0, 0, SRCCOPY);

memDC.DeleteDC();

memBitmap.DeleteObject();

pDC->SetMapMode(oldMapMode);

pDC->SetBkMode(oldBkMode);

1>在内存DC上完成同样的操作:
emDC.SetViewportOrg(rcClient.left, rcClient.bottom);

2>第1、第2,第6,第7个参数分别改为计算后的逻辑坐标
pDC->BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &memDC, 0, 0, SRCCOPY);