用VB6建立带光栅的超级开始菜单

2008-02-23 07:00:40来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

1 2 下一页

  原理

  由于Windows自身并未提供这项接口函数,因此我们必须从分析菜单的实质入手,我认为任何菜单实质上是一个没有标题栏的窗体,菜单项目是某些控件(如标签控件),通过监测鼠标是否移动到控件上而相应的改变控件的背景色和填充色,从而达到相应的目的,当然另外一项关键是如何制造出那一个倒立着的写着“windows98”字样的标题,这需要我们调用复杂的系统函数来实现。

  实践

  (1)运行VB6,建立一个标准exe工程,添加命名为form1的窗体,放上一个command控件“command1”,caption=“开始”,调整到适当的位置,双击窗体,写入以下代码:

Private Sub Command1_Click()
 frmTest.Show ‘当开始按钮被点击时激活超级菜单
End Sub

Private Sub Form_Load()
 Me.left = (Screen.Width - Me.Width) / 2
 Me.tOp = (Screen.Height - Me.Height) / 2 ‘窗体位置居中
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If frmTest.Visible = True Then
  Unload frmTest
 End If ‘当鼠标离开菜单时卸载菜单
End Sub

Private Sub Form_Unload(Cancel As Integer)
 End ‘结束程序
End Sub
  (2) 添加命名为frmtest的窗体,添加一个picturebox控件,命名为piclogo,采用默认值就行了,添加控件数组label1(1--6)(读者可以根据自己的需要添加),caption=“菜单项目”,添加一个image控件,将它的图片设计为自己喜欢的图片,移动窗体和图片到适当位置,双击窗体,写入以下代码:

  Option Explicit
  Dim cL As New cLogo ‘引用类模块
  Private Sub Form_Load()
  Me.left = Form1.left
  Me.tOp = Form1.tOp - Form1.Height ‘指定窗体位置
  Me.Caption = App.Title ‘窗体标题
  cL.DrawingObject = picLogo ‘指定piclogo为载体
  cL.Caption = ″ 欢迎使用国产软件! --zouhero 2000 ″‘文本
  cL.StartColor = vbBlue ‘前段颜色-蓝色
  cL.EndColor = vbRed ‘后段颜色-红色
  End Sub
  Private Sub Form_Resize()
  On Error Resume Next
  picLogo.Height = Me.ScaleHeight
  cL.Draw
  End Sub
  Private Sub Label1_Click(Index As Integer)
  MsgBox ″你选择了菜单″ & Index, vbExclamation
  ’在这里添加你的相应代码
  End Sub
  Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim i As Integer ‘当鼠标移动标签控件时,前景色变成白色,背景色变成蓝色
   Label1(Index).BackColor = vbBlue
   Label1(Index).ForeColor = &HFFFFFF
   For i = 0 To Label1.Count - 1 ‘其他标签颜色恢复原状
  If i = Index Then GoTo aa
  Label1(i).BackColor = vbButtonFace
  Label1(i).ForeColor = &H0
  aa:
  Next ‘恢复除选定标签外的所有标签的前景色和背景色
  End Sub ‘代码结束

上一篇: 让Visual Basic应用程序支持鼠标滚轮
下一篇: Visual Basic 属性、方法和事件三

1 2 下一页

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Visual Basic编程访问WMI对象

下一篇:用Visual Basic创建多线程应用程序