WEB开发网
开发学院软件开发C语言 C# GDI+绘图高级编程 阅读

C# GDI+绘图高级编程

 2009-04-04 08:22:25 来源:WEB开发网   
核心提示: 接着给Form1构造函数添加代码,使用窗体的CreateGraphics()方法创建一个Graphics对象,C# GDI+绘图高级编程(3),其中包括绘图时需要的使用的Windows DC,创建的DC即与显示设备相关也与窗口相关,一般情况下应用程序就需要在以后重新绘制它, 由于本示例把

接着给Form1构造函数添加代码。使用窗体的CreateGraphics()方法创建一个Graphics对象,其中包括绘图时需要的使用的Windows DC。创建的DC即与显示设备相关也与窗口相关。

   public Form1()
       {
              InitializeComponent();
             
              Graphics dc = this.CreateGraphics();
              this.Show();
              Pen bluePen = new Pen(Color.Blue,3);
              dc.DrawRectangle(bluePen,0,0,50,50);    //矩形
              Pen redPen = new Pen(Color.Red,2);
              dc.DrawEllipse(redPen,0,50,80,60);        // 椭圆
       }

然后调用Show()方法显示窗口。必须让窗口立即显示,因为在其显示之前不能作任何工作。(没有绘图的地方)

最后显示一个矩形和椭圆。注意其中坐标(x,y)表示从窗口的客户区域左上角向右的X个像素,

向下的Y个像素。

(其中DrawRectangle()和DrawEillipse()这两个函数前面已经讲过不再重复了。)

上面程序窗体如果最小化再恢复,绘制好的图形就不见了。如果在该窗体上拖动另一个窗口,使之只遮挡一部分图形,再把该窗口拖离这个窗体,临时被遮挡的部分就消失了,只剩下一半椭圆或矩形了!原因是:如果窗体的一部分被隐藏了,Windows通常会立即删除与其中显示的内容相关的所有信息。在窗口的某一部分消失时,那些像素也就丢失了(即Windows释放了保存这些像素的内存)。

但要注意窗口的一部分被隐藏了,当它检测到窗口不再被隐藏时,就请求拥有该窗口的应用程序重新绘制其内容。这个规则有一些例外----窗口的一小部分被挡住的时间比较短(显示菜单时)。一般情况下应用程序就需要在以后重新绘制它。

由于本示例把绘图代码放在Form1的构造函数中,故不能在启动后再次调用该构造函数进行重新绘制。

上一页  1 2 3 

Tags:GDI 绘图 高级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接