敬阿奇,C程序设计(第3版),第6章.ppt

敬阿奇,C程序设计(第3版),第6章

6.4.2 文本输出 【例6.7】设计WinForm应用程序绘制不同字体的字符串。 新建WinForm项目,在Form1的设计视图中将此窗体调整到适当的大小并将“Text”属性设为“绘制不同字体字符串”。添加Form1的Paint事件,其事件代码如下所示: private void Form1_Paint (object sender, EventArgs e) { FontFamily[] families = FontFamily.GetFamilies(e.Graphics); Font font; string familyString; float spacing = 0f; int top = families.Length 7 ? 7 : families.Length; for (int i = 0; i top; i++) { font = new Font(families[i], 16, FontStyle.Bold); familyString = families[i].Name + 字体形状。; e.Graphics.DrawString(familyString, font, Brushes.Black, new PointF(0, spacing)); spacing += font.Height + 3; } } 6.4.2 文本输出 运行程序,运行结果如图6.9所示。 6.5 图像处理 6.5.1 绘制图像 【例6.8】设计WinForm应用程序在PictureBox控件中绘制图像。 新建WinForm项目,在Form1的设计视图中将此窗体调整到适当的大小并将 Text属性设为“绘制图像”。添加一个Button控件,Text属性设置为“绘制”,再添加一个PictureBox控件并将此控件调整到适当大小。在本机C盘中存放一幅命名为“girl.gif”的图片。添加button1的Click事件,其事件代码如下所示: private void button1_Click (object sender, EventArgs e) { Bitmap myBitmap = new Bitmap(C:\\girl.gif); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(myBitmap, 0, 0); } 6.5.1 绘制图像 运行程序,单击“绘制”按钮,运行结果如图6.10所示。 6.5.2 刷新图像 要实现画出的图像能自动刷新,另一种解决方法是直接在窗体或控件的Bitmap对象上绘制图形,而不是在Graphics对象上画图。Bitmap对象非常类似于Image对象,它包含的是组成图像的像素,可以建立一个Bitmap对象,并在其上绘制图像后,再将其赋给窗体或控件的Bitmap对象,这样绘出的图就能自动刷新,不需用程序来重绘图像。 例如,定义一个Bitmap对象,将其赋给窗体的BackgroundImage属性: Bitmap bmp = new Bitmap(this.Width,this.Height); //设置图像的尺寸,创建空的位图 this.BackgroundImage = bmp; 然后,就要在Bitmap对象上画图,这还需要借助于Graphics对象提供的丰富的画图方法。因此,将从Bitmap对象创建一个Graphics对象,之后就可以在Graphics对象上画图,也就是在Bitmap对象上画图,代码如下: Graphics g = Graphics.FromImage(bmp); //从bmp对象创建一个Graphics对象 g.Clear(this.BackColor); //设置位图的背景色并清除原来的图像 Pen backpen = new Pen(Color.Black, 4); //一个黑色画笔 g.DrawLine(backpen, 0, 0, 300, 300); //画一根线 * 第6章 GDI+编程 6.1 GDI+简介 6.2 绘图 6.3 颜色 6.4 文本输出 6.5 图像处理 6.1 GDI+简介 坐标系是图形设计的基础,绘制图形都需要在一个坐标系中进行。

文档评论(0)

1亿VIP精品文档

相关文档