GDI+位图拷贝问题

nanoo 2008-03-19 10:31:17
怎样把当前设备中的位图拷贝到内存中,然后在原来的位图上进行再绘图?
...全文
135 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
不明LZ在说什么
「已注销」 2008-03-23
  • 打赏
  • 举报
回复
那你就去搜GDI+的双缓冲
nanoo 2008-03-22
  • 打赏
  • 举报
回复
我知道用双缓冲,但在GDI+中,没有函数能够实现这个方法。
DRACULAX05 2008-03-21
  • 打赏
  • 举报
回复
双缓冲,乒乓法
nanoo 2008-03-21
  • 打赏
  • 举报
回复
帖子追加分了,怎么还没人回答阿?小弟急啊
nanoo 2008-03-20
  • 打赏
  • 举报
回复
哪位兄台能回答我的问题啊?分不够再加。
nanoo 2008-03-19
  • 打赏
  • 举报
回复
在GDI+中如何实现类似于BitBlt的功能?
nanoo 2008-03-19
  • 打赏
  • 举报
回复
类似于GDI中的BitBlt函数的功能
nanoo 2008-03-19
  • 打赏
  • 举报
回复
我如果进行循环画线操作,每次循环,对一条线进行着色(Bitmap.SetPixel),都必须在屏幕的最右边,当下次循环来时,先前的着色线条向左移动一个像素,最右边的线条为这次循环所画,如此循环,请问怎么做?
菜牛 2008-03-19
  • 打赏
  • 举报
回复
GDI+:
Graphics graphics(dc.GetSafeHdc());
CRect rcClient;
GetClientRect(&rcClient);
Bitmap bmp(rcClient.Width(), rcClient.Height(), &graphics);
Graphics graphBmp(&bmp, &graphics);

graphBmp...// 绘图

CachedBitmap cachedBmp(&bmp, &graphics);
graphics.DrawCachedBitmap(&cachedBmp, 0, 0);
未测试
菜牛 2008-03-19
  • 打赏
  • 举报
回复
CClientDC dc(this);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpMem;
CRect rcClient;
GetClientRect(&rcClient);
bmpMem.CreateCompatibleDC(&dc, rcClient.Width(), rcClient.Height());
CBitmap *pOldBmp = dcMem.SelectObject(&bmpMem);
dcMem.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &dc, 0, 0, SRCCOPY); //将屏幕DC内容拷贝到内存DC上

dcMem....//在内存DC上绘图

dc.Bitblt(0, 0, rcClient.Width(), rcClient.Height(), &dcMem, 0, 0, SRCCOPY); //拷贝回来
dcMem.SelectObject(pOldBmp);
dcMem.DeleteDC();
bmpMem.DeleteObject();
未测试

19,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧