C#的画图板!(源代码已经贴出,blog中其他帖子,自己找找,不要跪求了,汗!)
2010-06-17 18:26
417 查看
C#的画图板!(源代码已经贴出,blog中其他帖子,自己找找,不要跪求了,汗!)
很简单的画图板,用C#实现,功能尚未完成,测试一下download最近实在是太忙了,课程设计一个接一个,去年编的画图板到现在都还没改成,凑合一下吧!
操作系统:WindowsXp
开发平台:Microsoft .NET Framework1.1+Microsoft Visual Studio .NET 2003
开发语言:C#
二、一些问题
1、对于图像的保存,我没有使用串行化,所以没法改,也懒得加了。我用了一个双重缓冲的办法(Image类有一个save的方法),有点怪异,可以保存位图!
2、对于旋转的的操作我设计的不好,最初没考虑旋转!
3、最近又比较忙了,源代码遗失许久,还在回忆中,尽快给大家,谢谢!
源代码在这里:/article/5508372.html,其实早就贴出来了,汗!
一、 相关知识:
关于c#的绘图原理:
1. 重绘概念:对于MS windows的窗口而言,windows并没有存储每个已打开的窗口的外观,每当位于前台的窗口被其他窗口遮盖、移出屏幕范围、窗口本身大小改变(包括最大最小化)、用户在应用程序中人为的通知窗体重绘,windows就会告诉应用程序窗口需要重新绘制,以确定窗口的外观及内容(实际上我们只需要绘制内容,windows本身会考虑窗口的边框标题及其他要素,因为这是在设计窗体时生成的,下面会介绍C#窗体的生成)。
2. OnPaint()函数:C#中每当窗体需要重绘,windows都会调用一个函数-OnPaint()。正是基于这一特性,我们只需要重写这个函数,达到我们希望的窗体在重绘时所要绘制的图形。
3. C#Graphics绘图类:Graphics类封装了一个GDI+的绘图界面,提供了在windows的控件、发送给打印机的页面、内存中的位图和图像绘制图形的功能。可以绘制圆弧、矩形、椭圆。Bezier曲线、文本等图形。我们主要是从窗口控件获得Graphics对象,可以在重绘事件OnPaint()中获得:
Protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
//do our drawing here
}
有时,需要直接在窗口中绘图,无需引发OnPaint事件,可以调用CreateGraphics方法获得Graphics对象:
Protected void Form1_Click(object sender,System.EventArgs e)
{
Graphics g = this.CreateGraphics;
//do our drawing here
g.Dispose(); //it is important to dispose resource
}
因为需要交互式地操作,所以在我地程序中采用第一种方法。
相关文章推荐
- 编写高质量代码改善C#程序的157个建议——建议119:不要使用自己的加密算法
- 不要修改dtsi,修改自己板子的dts,通过 &label 语句修改子文件里已经存在的节点
- 一开始实现的时候,不知道贝塞尔曲线,自己去思考其他方法实现了。怎么想到用到贝塞尔曲线?以后碰到类似问题,应该先在网上找找都有什么方法实现。
- 想自己用C#写程序,主要功能是对其他的程序进行打包,如何实现,求高手指教!!!
- 输出自己源代码的C#程序
- 我的基于DNS欺骗的HTTPS嗅探器+修改器【Prototype】,2004年写的,好像现在还能用,不过不要乱用,违法自负!自己写在英文blog上的,懒得翻译了,呵呵
- 注册csdn已经有两年的时间了,今天才开始正式启用自己的blog,纯技术的blog
- 今天从其他Blog上面看到的一些对自己有价值的功能收藏先,空了慢慢研究
- 大家都不去csdn写blog?还是csdn不要c#?
- 以后大家也不要跪求代码了,我发个帖子,把代码upload上去
- 也许在物欲横流的社会谎言已经成为了生活的必需品,但是请不要对信任自己的人说谎话,很伤的。而且弥补不了的。
- 不要忽略c#中的using和as操作符 (转)自己也是不大懂,学习一下
- C#实现自己主动升级(附源代码)
- 不要修改dtsi,修改自己板子的dts,通过 &label 语句修改子文件里已经存在的节点
- 这段时间忙于做其他事情,疏于照顾自己的BLOG,冒上来一下。
- 今天看了《自己动手用c#写控件》一文,写出了自己的源代码,但仍有属性不能立即问题。
- blog的确越来越时髦了,进来又有不少人有了自己的blog,自然,我的blog业就不只一次地被人问起。。。遗憾的是我已经很长时间没有更新了。。。
- c#Winform程序的toolStripButton自己定义背景应用演示样例源代码
- C# winform 皮肤(我就使用了两种,其他自己去体现)
- c#动态编译,自己做了个c#脚本管理框架,可以作为其他应用的插件使用。增强程序的拓展性