帶有歷史記錄功能的菜單
在我們?nèi)粘J褂玫囊恍┸浖?,如office系列、visual家族等,經(jīng)常會(huì)看到打開菜單中記載了上次進(jìn)行的任務(wù)。這樣的菜單可以方便用戶操作。我們也可以使用VB來實(shí)現(xiàn)這樣的功能。本文以常見的添加值不超過五
在我們?nèi)粘J褂玫囊恍┸浖?,如office系列、visual家族等,經(jīng)常會(huì)看到打開菜單中記載了上次進(jìn)行的任務(wù)。這樣的菜單可以方便用戶操作。我們也可以使用VB來實(shí)現(xiàn)這樣的功能。本文以常見的添加值不超過五個(gè)的菜單為例,演示如何實(shí)現(xiàn)該功能。這個(gè)程序不需要具備API函數(shù)調(diào)用,只需使用VB自身攜帶的函數(shù)即可。主要使用getsetting、savesetting和deletesetting函數(shù)來完成。下面是具體步驟:
1. 打開VB并選擇標(biāo)準(zhǔn)窗口
在工具菜單中選擇編輯菜單器,并進(jìn)行以下設(shè)置:
- 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 ----(注:一定要在最后一項(xiàng)的caption設(shè)一個(gè)虛值,這樣做的原因是為了后面在菜單項(xiàng)未滿時(shí)添加文件名做判斷,并沒有實(shí)際意義)----
2. 在窗體中加載一個(gè)對(duì)話框
對(duì)話框的name為commongdialog1。
3. 源程序如下:
在通用里聲明如下常量和函數(shù):
```vb
Const k1 "記憶菜單"
Const k2 "文件名"
Function addfilename(filename)
' 添加文件名
DIM I,G AS INTEGER
For I 5 To 1 Step -1
' 從第五項(xiàng)開始向第一項(xiàng)
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
' 此處初始化菜單,利用了虛設(shè)菜單項(xiàng)
SaveSetting k1, k2, I, filename ' 在注冊(cè)表里保存
ElseIf mnufilename(1).Caption < > "" Then
' 表明菜單已滿
DeleteSetting k1, k2, 5 ' 按先入先出規(guī)則,刪除最后一項(xiàng)
For G 4 To 1 Step -1 ' 一至四項(xiàng)依次后移
n GetSetting(k1, k2, G) ' 從注冊(cè)表里取其值
SaveSetting k1, k2, (G 1), n ' 順延到下一項(xiàng)
Next
SaveSetting k1, k2, 1, filename
Exit Function
End If
End If
Next
End Function
Function display()
' 顯現(xiàn)各項(xiàng)文件名
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
```
通過以上步驟,我們就可以實(shí)現(xiàn)帶有歷史記錄功能的菜單了。用戶可以方便地選擇之前打開過的文件,提高操作效率。