迷璐的小强 2016-07-15 09:33 采纳率: 33.3%
浏览 1273
已结题

MFC 双缓存绘图出现黑边的问题

 //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这个控件中用内存画图的方法 填充颜色,为啥控件没有填充满绿色,会出现黑边呢?
  • 写回答

2条回答

  • mazegong 2016-07-15 10:08
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏