3DMAX制作 VB编程 VC编程 JAVA编程 DELPHI乐园 高级硬件知识 网络架站探讨
当前位置:会员服务 > 高级 > VB编程 >  “彩蝶”伴“鼠”飞
 
《 “彩蝶”伴“鼠”飞 》
 
  我们都想使自己的程序有一些与众不同的东西,让第一次使用的人感到新奇。把下面的代码加入你的VB程序中,就能使程序运行时鼠标旁边有4个彩蝶在翩翩起舞。

  Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

  DrawWidth = 5

  Static CX(3) As Single, cy(3) As Single′用Static声明的变量可在过程重启时仍保存上次的值

  Dim xx(3) As Single, yy(3) As Single

  Dim i As Integer

  For i = 0 To 3

  PSet (CX(i), cy(i)), Me.BackColor′用背景色画点,将上次画的彩点覆盖掉

  ′取以鼠标为圆心250为半径的圆内的随机点

  xx(i) = (Rnd * 500 - 250) + X

  yy(i) = (Rnd * 500 - 250) + Y

  Next i

  For i = 0 To 3

  PSet (xx(i), yy(i)), RGB(Rnd * 255, Rnd * 255, Rnd * 255)'画4个颜色随机变化的彩点

  ′保存4个随机点的位置,以便下个MouseMove事件中能通过画背景色的点来覆盖它们

  CX(i) = xx(i)

  cy(i) = yy(i)

  Next i

  DrawWidth = 1

  End Sub

  如果在窗体上有Label控件,彩点会把它们擦掉,我们可以判断出随机点是否接近Label控件,从而决定是否画彩点。例如有三个Label控件,将下面代码替掉斜体部分就能使Label控件不受影响。

  For i = 0 To 3

  If (xx(i) <= Label1.Left - 30 Or yy(i) <= Label1.Top - 30 Or yy(i) >= Label1.Top + Label1.Height + 30 Or xx(i) >= Label1.Left + Label1.Width + 30) _

  And (xx(i) <= Label2.Left - 30 Or yy(i) <= Label2.Top - 30 Or yy(i) >= Label2.Top + Label2.Height + 30 Or xx(i) >= Label2.Left + Label2.Width + 30) _

  And (xx(i) <= Label3.Left - 30 Or yy(i) <= Label3.Top - 30 Or yy(i) >= Label3.Top + Label3.Height + 30 Or xx(i) >= Label3.Left + Label3.Width + 30) Then′如彩点不在Label控件范围内

  PSet (xx(i), yy(i)), RGB(Rnd * 255, Rnd * 255, Rnd * 255)′画4个颜色随机变化的彩点

  Else ′在Label控件范围内则不画点

  xx(i) = 0

  yy(i) = 0

  End If

来自《电脑报》(江西 程志刚)

精华文章先睹为快  玩转电脑从此简单

本站所有文章的著作权归作者所有

责任编辑