vb.net中使用GDI画图,然后平移,可是平移之前的图还在,怎么去掉平移之前的,保留平移之后的?

DimagAsGraphicsag=PictureBox1.CreateGraphicsDimrectAsNewRectangle(0,0,50,50)DimpenAsN... Dim ag As Graphics
ag = PictureBox1.CreateGraphics
Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(128, 200, 0, 200), 2)
ag.DrawRectangle(pen, rect)

ag.ResetTransform()
ag.TranslateTransform(150, 150)
ag.DrawRectangle(pen, rect)
展开
 我来答
风中的奶牛
2013-08-28 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:112万
展开全部
如果是简单的移动,先把图形绘制到大小和PictureBox的Bitmap上,然后再绘制到PictureBox就行。
不过在VB.NET中用GDI绘制最好用BufferedGraphics图形缓冲区,速度马马虎虎(VB就这样了),但是不闪烁,不存在背景擦除的问题。
追问
我希望的就是那种连续移动的效果,用reflash的话就会闪烁。BufferedGraphics能做到吗,能不能给个demo?
巍然又谦逊的小熊k
2013-08-28 · TA获得超过107个赞
知道答主
回答量:77
采纳率:0%
帮助的人:22万
展开全部
用覆盖的方法,再声明一个pen,颜色为picturebox1.backcolor。 我这里就把图片背景当成白色。
Dim ag As Graphics
Dim pen1 As New Pen(Color.FromArgb(255, 255, 255, 255), 2)
ag = PictureBox1.CreateGraphics
Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(255, 200, 0, 200), 2)
ag.DrawRectangle(pen, rect)
ag.DrawRectangle(pen1, rect)
ag.TranslateTransform(150, 50)
ag.DrawRectangle(pen, rect)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式