社区
C#
帖子详情
GDI+中控制绘图的问题(100分求助)
CsLover
2002-11-14 09:01:09
我用GDI+绘图时,用GreateGraphics()不能解决重画问题 可是重载OnPaint又不能让我控制每次Form_Lord好以后就开始画了
我想实现的是 我鼠标点击一下一个Button,画面(依照我预先的设计)就变化一下,好像做演示一样,请问哪位知道怎么解决?
...全文
69
15
打赏
收藏
GDI+中控制绘图的问题(100分求助)
我用GDI+绘图时,用GreateGraphics()不能解决重画问题 可是重载OnPaint又不能让我控制每次Form_Lord好以后就开始画了 我想实现的是 我鼠标点击一下一个Button,画面(依照我预先的设计)就变化一下,好像做演示一样,请问哪位知道怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chestnuts
2002-11-23
打赏
举报
回复
给分的时候,给出去的总分不要超过100分就可以了!
CsLover
2002-11-20
打赏
举报
回复
谁教我怎么能给分啊? 我给来给去都报错 我真的很想给分呀!! 555555
CsLover
2002-11-20
打赏
举报
回复
5drush,你说的重画似乎是将画面clear 以便画新的更确切的说 reset 不知道我对你的话的理解是否恰当
需要反面资料干嘛啦 我这可是正面教材
AlphaQ
2002-11-19
打赏
举报
回复
我也来一份 WangSP@nstek.com.cn
zanbuhui
2002-11-19
打赏
举报
回复
给我一份参考参考吧,我正需要着反面的资料。
先谢了,shizf@haijing-tj.com
5drush
2002-11-18
打赏
举报
回复
俺说得不对吗?呵呵,我觉得没问题呀,你说说我的方法为什么不行?
CsLover
2002-11-18
打赏
举报
回复
完了 我连怎么给分都不会 老说我“贴子回复次数大于跟给分次数” 谁教我啊?
CsLover
2002-11-18
打赏
举报
回复
我已经完成了我的Visual八皇后啦 不过我觉得我们的话题应该继续下去
5drush似乎误解“重画”的含义了
chestnuts 说得我都看到了(这本书我自己也买了),不过没有说明怎么实践
有些可惜 不过还是很感谢 Invalidate()的确管用 OnPaint的重载也是非常必要 两个加起来真是不错 我的八皇后就是画出来的 大家谁想参考一下重画方法的可以问我要 jefferine@163.com
分我就先给了 免得自己莫名地进入了别人的黑名单 ^_^
5drush
2002-11-18
打赏
举报
回复
你这样明确是明确了,不过不顶用,绘图的代码还是要写在OnPaint里面,人家在前面说不能写在OnPaint里面的撒。
所以最好的办法是:
还是按照你在按纽事件里面使用GreateGraphics()来画图,需要重画的时候就画一个背景色为你的窗体颜色的大矩形来覆盖以前画的
虽然简单,不过管用,给分吧,嘿嘿
chestnuts
2002-11-17
打赏
举报
回复
我回答具体而且明确,分要全给我哦!!
否则把你加入黑名单,呵呵~~~~
唯一的最佳的最好的解决方法就是用Invalidate()
下面的话摘自C#高级编程
invalidate()是System.Windows.Forms.Form的一个成员,以前没有介绍过这个方法。当需要重新绘制某些内容时,这个方法是非常有用的。实际上,它把客户窗口区域标记为无效,因此在需要重新绘制时,它可以确保引发Paint事件。Invalidate()有两个重载方法:可以给它传送一个矩形,指定(使用页面坐标)需要重新绘制哪个窗口区域,如果不提供任何参数,此时他把整个客户区域标记为无效。
为什么要这么做?如果知道需要绘制某些内容,为什么不调用OnPaint()或直接完成绘制任务的其他方法?有时,如果对屏幕的修改比较小,不太适合直接调用绘图例程,或者如果代码要完成某些绘图任务,此时一般应调用Invalidate().
有关于这个函数的源码,可以在www.wrox.com上下载,具体是第二十一章 使用GDI+绘图这一章的CapsEditor源码。
希望对你有用!
My Email:chestnuts@netease.com
tansm
2002-11-17
打赏
举报
回复
[Description("返回/设置顶部标题的说明文本")]
public string Info{
get{
return strInfo;}
set{
strInfo=value;
panTitle.Invalidate();}
}
UpDate()不是必需的。
这种方法可以重新绘制,但我现在也有问题,我使用
Graphics grp=e.Graphics;
grp.Clear(panTitle.BackColor);
不能清除原先的图形
CsLover
2002-11-16
打赏
举报
回复
tansm, 可以具体点吗? Invalidate()我也看到过 可是具体的用法不知道
还有 我看到的源码中Invalidate后面没有加Update()
Update()是必须的嘛?
tansm
2002-11-14
打赏
举报
回复
控件有个重绘的方法,当用户按下按钮就可以重绘。
Invalidate( );
Update( );
rbjojo
2002-11-14
打赏
举报
回复
http://expert.csdn.net/Expert/topic/1174/1174741.xml?temp=.7122003
看看这个吧
我的类似问题也没有解决
也许对你有启发
CsLover
2002-11-14
打赏
举报
回复
这个问题很难吗?大家帮帮我
c#——绘制任意轨迹的画板
前两天群的一同仁,
求助
写一个可以绘制任意图形程序。经了解后就是一个可以用鼠标绘制任意轨迹的画板。同仁强烈要求能否给些
绘图
相关的示例。小的不才,因为写过天
GDI+
相关的程序,本着码农本份,就在晚上花了40
分
钟写了这个画板。虽不是什么给力神马,但也不敢私藏,现贴出来和大家一起学习学习,还请多多指教。
c语言确定原点建立坐标系,在
GDI+
中
如何实现以左下角为原点的笛卡尔坐标系
今天写了一个求点集合的凸包的一个算法,虽然结果求解出来了,但是想将过程用
GDI+
绘制出来,就需要将点绘制出来,然而c#
GDI+
中
绘图
的坐标与我们常用数学
中
笛卡尔坐标系是不一样的,所以就要转换
GDI+
中
的坐标,通过以下的代码的就能够实现坐标系的转换,代码如下所示://将
GDI+
中
原始的坐标原点平移g.TranslateTransform(0f, this.Height);//变换x,y轴的正方向g....
GDI+
双缓冲实现
早前曾为此
问题
在CSDN发帖
求助
(
GDI+
如何使用双缓冲绘制图像),得到了一个
GDI+
下较可行的方法,虽然绘制效果比直接绘制要好一些,不过还不能跟GDI的双缓冲方式比肩。 现在,我终于找到了一个理想的实现方式,效果与GDI的实现不相上下,代码如下:/*C++ code*/RECT rc;GetClientRect(g_hwnd,&rc);Bitmap bmp(int(rc.right),int(
GDI+
双缓冲实现和局部刷新技术
早前曾为此
问题
在CSDN发帖
求助
(
GDI+
如何使用双缓冲绘制图像),得到了一个
GDI+
下较可行的方法,虽然绘制效果比直接绘制要好一些,不过还不能跟GDI的双缓冲方式比肩。 现在,我终于找到了一个理想的实现方式,效果与GDI的实现不相上下,代码如下: /*C++ code*/ RECT rc; GetClientRect(g_hwnd,&rc);
C#绘制带
控制
点的Bezier曲线,用于点阵图像及矢量图形
使用c# +
GDI+
进行SVG等
绘图
,绘制带
控制
点的Bezier曲线。可用于点阵图像及矢量图形(如SVG)
绘图
。
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章