//CDialog::OnPaint();
CPaintDC dc(this); // 目标A桌子
RECT myRect;
GetDlgItem(IDC_STATIC)->GetWindowRect(&myRect);
ScreenToClient(&myRect);
//ScreenToClient(&myRect);
//GetClientRect(&myRect);//获取桌子大小
long nWidth=myRect.right - myRect.left;
long nHigth=myRect.bottom - myRect.top;
CDC tempdc;//B桌子
CBitmap MemBitmap;//新桌布
CBitmap*OldBitmap;//旧桌布
tempdc.CreateCompatibleDC(NULL); //实体化B桌子
MemBitmap.CreateCompatibleBitmap(&dc,nWidth,nHigth);//实体化给B使用的桌布
//这里是拷贝了A的位图,自己用张图片也行,大小注意下
OldBitmap=tempdc.SelectObject(&MemBitmap);
//给B使用
tempdc.FillSolidRect(&myRect,RGB(0,255,255));
//默认黑色,自己按需改变
//...............
//在B桌布上画画,tempdc
dc.BitBlt(myRect.left ,myRect.top, nWidth, nHigth, &tempdc,0,0,SRCCOPY);
//拷贝给A
tempdc.SelectObject(OldBitmap);
//恢复B原有的桌布(习惯吧,就像申请内存后记得释放)
//删除临时对象
MemBitmap.DeleteObject();
tempdc.DeleteDC();
Invalidate(FALSE);
上面是在:OnPaint() 函数现在添加的代码 本意是想在IDC_STATIC这个控件中用内存画图的方法 填充颜色,为啥控件没有填充满绿色,会出现黑边呢?