15,980
社区成员




OnInitDialog: 修改窗口属性
ModifyStyle(0, WS_CLIPCHILDREN|WS_CLIPSIBLINGS);
OnEraseBkgnd: 画背景
if(m_hWnd)
{
for(CWnd* pChild = GetWindow(GW_CHILD); pChild; pChild = pChild->GetNextWindow())
{//剪裁所有子窗口
if(!pChild->IsWindowVisible()) continue;
CRect r;
pChild->GetWindowRect(&r);
ScreenToClient(&r);
pDC->ExcludeClipRect(&r);
}
//用这段注释掉的代码就没有问题
//CRect rcClient;
//GetClientRect(&rcClient);
//CBrush brush(RGB(0,0,0));
//pDC->FillRect(&rcClient, &brush);
CRect rcClient;
GetClientRect(&rcClient);
//Prepare drawing
CBitmap *pOldBitmap;
CBitmap bitmap;
CDC memDC;
memDC.CreateCompatibleDC(pDC);
//画背景
bitmap.LoadBitmap(IDB_MAIN);
pOldBitmap = (CBitmap*)memDC.SelectObject(&bitmap);
pDC->BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &memDC, 0, 0, MERGECOPY);
memDC.SelectObject(pOldBitmap);
bitmap.DeleteObject();
memDC.DeleteDC();
}
return TRUE;