窗体启动特效

【效果图】

** 【思路】: **

** ** 在 Form 的 OnLoad 中 先使 Form 不可见,然后从内向外,一层一层绘制 Rectangle , 最后让 Form 可见

难点】 ** **

** ** 首先输出效果的 Rectangle 要有个地方显示, Main Form 可不行,因为当绘制 Rectangle 的时候 , Form 是不可见的,这里使用了 Desktop 桌面

【代码如下】

1. 加入命名空间

using System.Drawing.Imaging;

using System.Runtime.InteropServices;

2. 声明 Win32 Api GetDC()

[ DllImport("user32") ]

public static extern System.IntPtr GetDC(System.IntPtr dc);

3. 声明变量

System.Drawing.Graphics g; //画图板

Pen p= new Pen(Color.Black,1); //画笔

int startx,starty,wx,wy,step; //startx,starty,wx,wy确定一个矩形

int cx,cy; //cx,cy为form的client的width 和height

4.在Form的OnLoad上加上如下代码

this .Visible= false ;

step=1;

g=Graphics.FromHdc(GetDC(System.IntPtr.Zero));

cx= this .ClientSize.Width;

cy= this .ClientSize.Height;

this .Visible= false ;

step=1;

while (step<=cx/2)

{

startx=cx/2-step;

starty=cy*startx/cx;

wx=2*step;

wy=wx*cy/cx;

startx+= this .Left;

starty+= this .Top+ this .Height- this .ClientSize.Height;

g.DrawRectangle(p,startx,starty,wx,wy);

System.Threading.Thread.Sleep(100);

step+=10;

}

this .Visible= true ;

ps:这是第一次发表原创, 大家多多指教

Published At
Categories with Web编程
Tagged with
comments powered by Disqus