2016 - 2024

感恩一路有你

带有历史记录功能的菜单

浏览量:2752 时间:2024-06-12 19:49:16 作者:采采

在我们日常使用的一些软件中,如office系列、visual家族等,经常会看到打开菜单中记载了上次进行的任务。这样的菜单可以方便用户操作。我们也可以使用VB来实现这样的功能。本文以常见的添加值不超过五个的菜单为例,演示如何实现该功能。这个程序不需要具备API函数调用,只需使用VB自身携带的函数即可。主要使用getsetting、savesetting和deletesetting函数来完成。下面是具体步骤:

1. 打开VB并选择标准窗口

在工具菜单中选择编辑菜单器,并进行以下设置:

- Caption: name

- Index: visible indentation

- File: mnufile 空 true 0

- Open: mnuopen 空 true 1

- - mnudesh 空 true 1

- - mnufilename 1 false 1

- - mnufilename 2 false 1

- - mnufilename 3 false 1

- - mnufilename 4 false 1

- - mnufilename 5 false 1

- abc mnufilename 6 false 1

- 2 ----(注:一定要在最后一项的caption设一个虚值,这样做的原因是为了后面在菜单项未满时添加文件名做判断,并没有实际意义)----

2. 在窗体中加载一个对话框

对话框的name为commongdialog1。

3. 源程序如下:

在通用里声明如下常量和函数:

```vb

Const k1 "记忆菜单"

Const k2 "文件名"

Function addfilename(filename)

' 添加文件名

DIM I,G AS INTEGER

For I 5 To 1 Step -1

' 从第五项开始向第一项

If mnufilename(1).Caption < > filename And mnufilename(2).Caption < > filename And mnufilename(3).Caption < > filename And mnufilename(4).Caption < > filename And mnufilename(5).Caption < > filename Then

' 判断所选的文件是否已存在

If mnufilename(I).Caption "" And mnufilename(I 1).Caption < > "" Then

' 此处初始化菜单,利用了虚设菜单项

SaveSetting k1, k2, I, filename ' 在注册表里保存

ElseIf mnufilename(1).Caption < > "" Then

' 表明菜单已满

DeleteSetting k1, k2, 5 ' 按先入先出规则,删除最后一项

For G 4 To 1 Step -1 ' 一至四项依次后移

n GetSetting(k1, k2, G) ' 从注册表里取其值

SaveSetting k1, k2, (G 1), n ' 顺延到下一项

Next

SaveSetting k1, k2, 1, filename

Exit Function

End If

End If

Next

End Function

Function display()

' 显现各项文件名

DIM I AS INTEGER

For I 5 To 1 Step -1

l GetSetting(k1, k2, I)

If l < > "" Then

mnufilename(I).Visible True

mnufilename(I).Caption l

Else

mnufilename(I).Visible False

mnufilename(I).Caption ""

End If

Next

End Function

Private Sub Form_Load()

Call display

End Sub

Private Sub mnuopen_Click()

DIM FILENAME

Call addfilename(filename)

Call display

End Sub

```

通过以上步骤,我们就可以实现带有历史记录功能的菜单了。用户可以方便地选择之前打开过的文件,提高操作效率。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。