社区
界面
帖子详情
怎么将一个DC上的内容复制到CBitmap类型的图片上,速度求帮助
wanglu343280746
2013-06-27 06:01:35
现在我有个内存DC CDC memdc;接下来我会在memdc上面绘图;
现在有个CBitmap bitmap; 怎么将我在memdc上面画的图保存在bitmap里面呢。
我只做了一步bitmap.CreateCompatibleBitmap(&memdc, 宽,高);
然后就在memdc上开始画图了,最后bitmap里面没有内容,只是黑色的背景,这个怎么办啊?
怎样才能让bitmap里面保存到memdc的内容呢?
...全文
225
7
打赏
收藏
怎么将一个DC上的内容复制到CBitmap类型的图片上,速度求帮助
现在我有个内存DC CDC memdc;接下来我会在memdc上面绘图; 现在有个CBitmap bitmap; 怎么将我在memdc上面画的图保存在bitmap里面呢。 我只做了一步bitmap.CreateCompatibleBitmap(&memdc, 宽,高); 然后就在memdc上开始画图了,最后bitmap里面没有内容,只是黑色的背景,这个怎么办啊? 怎样才能让bitmap里面保存到memdc的内容呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
w327115047
2014-05-09
打赏
举报
回复
CDC memDC;//内存DC CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); memDC.CreateCompatibleDC(pDC); CBitmap memBitmap, *oldmemBitmap;//建立和屏幕兼容的bitmap memBitmap.CreateCompatibleBitmap(pDC, Width, Height); oldmemBitmap = memDC.SelectObject(&memBitmap);//将memBitmap选入内存DC memDC.BitBlt(0, 0, Width, Height, pDC, 0, 0, SRCCOPY);//复制屏幕图像到内存DC memDC.SelectObject(pBrush); /*图形绘制代码 */ 这时候memBitmap 里面就保存了你绘制的图形了
向立天
2013-07-29
打赏
举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了
疑难问题汇总帖
并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面
界面版关于版主结帖工作的具体办法
schlafenhamster
2013-06-28
打赏
举报
回复
oldmemBitmap = memDC.SelectObject(&memBitmap);//将memBitmap选入内存DC memDC.BitBlt(0, 0, Width, Height, pDC, 0, 0, SRCCOPY);//复制屏幕图像到内存DC
memDC.SelectObject(oldmemBitmap);
这样 memBitmap 就可以用了
yaozhiyong110
2013-06-28
打赏
举报
回复
自己去研究下双缓冲原理 都是在dc上画...
yaozhiyong110
2013-06-28
打赏
举报
回复
你那个位图就是底色 memDC本来画的就是画到pDC里面去了 怎么会画到bitmap里?
wanglu343280746
2013-06-27
打赏
举报
回复
引用 1 楼 lgstudyvc 的回复:
bitblt(,,,,,,) msdn
不行啊,我试过,可能我用的方法不对吧,你能具体讲一下吗? CDC memDC;//内存DC memDC.CreateCompatibleDC(pDC); CBitmap memBitmap, *oldmemBitmap;//建立和屏幕兼容的bitmap memBitmap.CreateCompatibleBitmap(pDC, Width, Height); oldmemBitmap = memDC.SelectObject(&memBitmap);//将memBitmap选入内存DC memDC.BitBlt(0, 0, Width, Height, pDC, 0, 0, SRCCOPY);//复制屏幕图像到内存DC 我用的这个方法,这个memmBitmap里面应该保存pDC上内容 对吗?
lgstudyvc
2013-06-27
打赏
举报
回复
bitblt(,,,,,,) msdn
VC++ MFC文档视图程序静态背景
图片
实现:双缓冲绘图与资源管理实战
在Windows桌面应用开发中,图形用户界面(GUI)的绘制效率和视觉体验是核心考量。双缓冲绘图技术通过先在内存中完成所有绘制操作,再一次性输出到屏幕,有效解决了画面闪烁问题,是提升界面流畅度的关键技术。其工程价值在于能够显著改善用户交互体验,尤其适用于文档编辑器、数据可视化工具等需要频繁重绘的场景。本文聚焦于VC++ MFC框架下的具体实现,通过封装资源管理类,将JPG/PNG等格式
图片
作为自定义资源嵌入程序,并结合双缓冲机制,在文档视图架构中稳健地实现了静态背景功能。该方案不仅解决了滚动视图中的闪烁问题
关于双缓冲绘图(下)
小结:主要的思想是,如果要显示图形,直接把该图形当作
一个
document,在改写document的时候,实际上就是改写这个位图。然后在View中显示的时候,直接把这个位图显示出来就可以了。这需要两个
DC
,
一个
DC
是台面上的显示用的,
一个
DC
是在内存中绘图用的。两者的关联点就在于这个
bitmap
对象。 需要明确几个概念,由于MFC的类封装了windows对象,所以由MFC类创建出来的对象就叫做“实...
关于双缓冲绘图之二
小结:主要的思想是,如果要显示图形,直接把该图形当作
一个
document,在改写document的时候,实际上就是改写这个位图。然后在View中显示的时候,直接把这个位图显示出来就可以了。这需要两个
DC
,
一个
DC
是台面上的显示用的,
一个
DC
是在内存中绘图用的。两者的关联点就在于这个
bitmap
对象。需要明确几个概念,由于MFC的类封装了windows对象,所以由MFC类创建出来的对象就叫做“实
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章