请问C#中的paint事件是怎么实现的?
请问C#中的paint事件是怎么实现的?就比如onclick事件是双击Button来实现的,问的直接一点就是我想做一个C#画板,首先应该做什么。。。。...
请问C#中的paint事件是怎么实现的? 就比如onclick事件是双击Button来实现的, 问的直接一点就是我想做一个C#画板,首先应该做什么。。。。
展开
4个回答
展开全部
首先调用某控件的Invalidate()
Invalidate标记一个需要重绘的无效区域,并不意味着调用该函数后就立刻进行重绘。
只是向消息队列里发送一条消息,就返回了。
WINDOWS一直在循环处理消息队列,(这因该知道的吧。)
当处理到你的INVALIDATE时。就触发了PAINT(异步处理)
当然你调用完Invalidate(),再调用UPDATE以后。就直接触发ONPANIT了。
(同步处理)
同步处理有个REFREASH()函数=Invalidate()+update()
Invalidate标记一个需要重绘的无效区域,并不意味着调用该函数后就立刻进行重绘。
只是向消息队列里发送一条消息,就返回了。
WINDOWS一直在循环处理消息队列,(这因该知道的吧。)
当处理到你的INVALIDATE时。就触发了PAINT(异步处理)
当然你调用完Invalidate(),再调用UPDATE以后。就直接触发ONPANIT了。
(同步处理)
同步处理有个REFREASH()函数=Invalidate()+update()
展开全部
是用winform的吧?
其实窗体加载的时候paint事件就调用过了。
如果想再次调用,请调用窗体的Refresh()方法,也就是刷新咯,会把窗体上的所有空间以及图形绘制一遍。
至于画板,我做过一个,不过只有简单的画笔功能。
比如按下鼠标左键后,移动鼠标,开始画线,放开鼠标左键,画线结束。可以是不规则曲线。
需要Pen 类,PaintEventArgs对象。
还要用到MouseDown MouseMove MouseUp Paint 事件。
看你比较有钻研精神,源代码就不给你咯。。
有问题请查下MSDN吧,关键字Pen,里面直接就有个绘制矩形的例子。
其实窗体加载的时候paint事件就调用过了。
如果想再次调用,请调用窗体的Refresh()方法,也就是刷新咯,会把窗体上的所有空间以及图形绘制一遍。
至于画板,我做过一个,不过只有简单的画笔功能。
比如按下鼠标左键后,移动鼠标,开始画线,放开鼠标左键,画线结束。可以是不规则曲线。
需要Pen 类,PaintEventArgs对象。
还要用到MouseDown MouseMove MouseUp Paint 事件。
看你比较有钻研精神,源代码就不给你咯。。
有问题请查下MSDN吧,关键字Pen,里面直接就有个绘制矩形的例子。
追问
哎,你不给我源代码,我怎么钻研啊,要的就是只能画曲线的那种,不需要别的矩形什么的,
哎,你不给我源代码,我怎么给你加分啊。。。。
追答
呃,留个邮箱,我发给你
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
paint 由操作系统向控件发送WM_paint 消息
你要自己做画板你可以按照一定的时间周期去画这个是最简单的
你要自己做画板你可以按照一定的时间周期去画这个是最简单的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Refresh()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询