社区
C#
帖子详情
用GDI+(C#语言)画图,图形保存问题
yuyue3
2008-11-23 04:30:59
我用GDI+(C#)语言编了个程序,单击按钮后出来个图形,然后鼠标可以拖动(已实现),但当第二次单击鼠标出来图形并拖动后,第一个图形就没有了。请问如何才能使前面的图形不消失?先谢谢各位了!我是个初学者。
...全文
438
12
打赏
收藏
用GDI+(C#语言)画图,图形保存问题
我用GDI+(C#)语言编了个程序,单击按钮后出来个图形,然后鼠标可以拖动(已实现),但当第二次单击鼠标出来图形并拖动后,第一个图形就没有了。请问如何才能使前面的图形不消失?先谢谢各位了!我是个初学者。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tonny008
2008-11-25
打赏
举报
回复
矢量么?那就定义一堆东西保存你的画图的数据,可以参考.dxf文件
benyouyong
2008-11-25
打赏
举报
回复
protected override void OnPaint(PaintEventArgs e)
{
//绘制图片方法
}
bluelight68
2008-11-25
打赏
举报
回复
GDI中,你不添加一个BITMAP到CD中,CD是没有的。
当你第2次点击鼠标的时候,你的程序中,肯定是加载第2张图片并显示,没错吧,那么第一张图片呢??
首先你要搞清楚一点,Windows显示图片的变化是要刷新的,如果你刷新了,那么你就必须得重绘刷新的无效区域。在你的例子中,无效区域应该是整个Dialog的Client区域,那么当你在画第2张图片的时候,第一张图片你同样得画上去,才会显示两张图片,因为你在画第2张图片的时候,第1张图片没有再加载了,被屏幕刷掉了。
方蓝
2008-11-24
打赏
举报
回复
我觉得你不如定义一个数组,点击按钮时就向数组新增一条数组。
然后在GDI+在OnPaint里循环绘出每个对象,要知道,GDI+对象在OnPaint不停的读取的(你调试一下就知道),
Chawind
2008-11-24
打赏
举报
回复
2楼说的没错
yingongong
2008-11-23
打赏
举报
回复
混点分..下载个文件
DustLand
2008-11-23
打赏
举报
回复
全局变量:Bitmap originbmp = new Bitmap(400,400);
在点击按钮的时候
Graphics gs = Graphics.FromImage(originbmp);
然后在这个gs画布上画,画完之后this.Invalidate();
Form中有一个事件是Paint,在这个事件中
Bitmap DesBmp = (Bitmap)originbmp.Clone();
Graphics gs = this.CreateGraphics();
gs.DrawImage(DesBmp, new Point(200, 50));
大体就是这个意思吧
DustLand
2008-11-23
打赏
举报
回复
全局变量:Bitmap originbmp = new Bitmap(400,400);
在点击按钮的时候
Graphics gs = Graphics.FromImage(originbmp);
然后在这个gs画布上画,画完之后this.Invalidate();
Form中有一个事件是Paint,在这个事件中
Bitmap DesBmp = (Bitmap)originbmp.Clone();
Graphics gs = this.CreateGraphics();
gs.DrawImage(DesBmp, new Point(200, 50));
大体就是这个意思吧
yuyue3
2008-11-23
打赏
举报
回复
2楼说的道理我明白了,能否把解决方法说下呢?因为我实在很菜的,谢谢啊。
yuyue3
2008-11-23
打赏
举报
回复
1楼说的办法,请问大家行不行?
jy251
2008-11-23
打赏
举报
回复
GDI中,你不添加一个BITMAP到CD中,CD是没有的。
当你第2次点击鼠标的时候,你的程序中,肯定是加载第2张图片并显示,没错吧,那么第一张图片呢??
首先你要搞清楚一点,Windows显示图片的变化是要刷新的,如果你刷新了,那么你就必须得重绘刷新的无效区域。在你的例子中,无效区域应该是整个Dialog的Client区域,那么当你在画第2张图片的时候,第一张图片你同样得画上去,才会显示两张图片,因为你在画第2张图片的时候,第1张图片没有再加载了,被屏幕刷掉了。
DustLand
2008-11-23
打赏
举报
回复
可不可以先定义一个bitmap的全局变量g_bmp,先在g_bmp图像上画,然后在在Pain函数中,复制g_bmp,把复制得到的文件贴到界面上?
c#
GDI+
完整例子
超完整的C#
GDI+
例子,包含所有可能的功能,各种画笔的用法,含简单的
图形
学算法,浮雕效果、锐化、底片、渐变显示、坐标变换、旋转文字、箭头等 非常全的一个例子。
C#用
GDI+
画图
经典案例(不下后悔)
一个很好的
画图
例子,建立好坐标系后将随机取到的值画到坐标系里,随着时间的改变更新坐标系中得数值。有点像任务管理器里那个CUP信息得图!欢迎使用。。。*—*
c#
GDI+
实现类似
画图
板的效果,有画矩形、直线、椭圆,
保存
,新建,擦除,颜色变换
c#
GDI+
实现类似
画图
板的效果,有画矩形、直线、椭圆,
保存
,新建,擦除,颜色变换,简单实用,值得
保存
C#的
GDI+
绘制
图形
分层拖放操作源码
一个老外写的
GDI+
绘制
图形
的可以分层、大小缩放、可以进行颜色填充等支持原形、三角形、矩形、多边形以及直线和文字的绘制。
C#
GDI+
编程教程.pdf
C#
GDI+
编程教程.pdf
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章