求助!关于GDI+ 的内存绘图中,FromImage()的用法

快乐胖电工 2021-02-14 09:40:43
我想用GDI+做双缓存绘图。思路是这样的。内存中创建两个Bitmap位图,位图A和位图B,用1个Graphics对象gpMem与其中1个关联,需要在A上绘图时关联A,需要在B上绘图时关联B。但是结果却实现不了。
测试代码和运行结果如下。预期结果应该只用一条线,但实际输出2条线,也就是说关联位图B的代码是没有起作用的。请问是我思路的原理就行不通呢,还是其他问题。除了这个方法,我就只能想到“一个Graphics对象关联一个位图”,大神们还有其他方法吗?
		
CClientDC dc(this) ; //DC

Bitmap bmpA(500 , 500 ) ; // 位图A
Bitmap bmpB(100 , 100 ) ;// 位图B

Graphics gpDC(dc) ; // 关联DC

Graphics gpMem(&bmpA) ; //关联位图A

Pen newPen(Color(255,0,0),4) ; //画笔设置

gpMem.Clear(Color(255,255,255)) ; //背景色全白色

gpMem.DrawLine(&newPen , 200, 200 , 400 , 400) ; //画一条斜向下的线段

gpMem.FromImage(&bmpB) ; // 关联位图B(为什么会无效呢)

gpMem.DrawLine(&newPen , 200, 200 , 400 , 0) ;//画一条斜向上的线段

gpDC.DrawImage(&bmpA , 0 , 0) ; //输出到窗口上


...全文
64 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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