帶有歷史記錄功能的菜單
在我們?nèi)粘J褂玫囊恍┸浖校鏾ffice系列、visual家族等,經(jīng)常會看到打開菜單中記載了上次進行的任務。這樣的菜單可以方便用戶操作。我們也可以使用VB來實現(xiàn)這樣的功能。本文以常見的添加值不超過五
在我們?nèi)粘J褂玫囊恍┸浖?,如office系列、visual家族等,經(jīng)常會看到打開菜單中記載了上次進行的任務。這樣的菜單可以方便用戶操作。我們也可以使用VB來實現(xiàn)這樣的功能。本文以常見的添加值不超過五個的菜單為例,演示如何實現(xiàn)該功能。這個程序不需要具備API函數(shù)調(diào)用,只需使用VB自身攜帶的函數(shù)即可。主要使用getsetting、savesetting和deletesetting函數(shù)來完成。下面是具體步驟:
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. 源程序如下:
在通用里聲明如下常量和函數(shù):
```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 ' 按先入先出規(guī)則,刪除最后一項
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()
' 顯現(xiàn)各項文件名
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
```
通過以上步驟,我們就可以實現(xiàn)帶有歷史記錄功能的菜單了。用戶可以方便地選擇之前打開過的文件,提高操作效率。