多语言展示
当前在线:842今日阅读:167今日分享:16

带有历史记录功能的菜单

我们经常见到一些软件,如office系列,visual家族等等,他们的打开菜单里常常记载了上次所进行的任务,这样就方便了我们的操作,实际我们也能用vb实现这一功能,现在以常见的含有最多五个添加值为例给大家演示这一功能,并且此程序不需要具api 函数调用,直接使用vb自身携带的函数即可,主要使用getsetting,savesetting和 deletesetting函数,具体步骤如下
方法/步骤
1

1.打开vb,选择标准窗口,在工具菜单里选择编辑菜单器,各项设置如下:caption name indexvisible indentationfile mnufile 空 true 0Open 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 1abc mnufilename 6 false 1

2

---- (注:一定要在最后一项的caption设一虚值,这样做的原因是为了后面在菜单项未满时添加文件名做判断,并没有实际意义)---- 2.在窗体中加载一对话框,对话框的name为commongdialog1---- 3.源程序如下:---- 在通用里声明:Const k1 = '记忆菜单'Const k2 = '文件名'Function addfilename(filename)'添加文件名DIM I,G AS INTEGER

3

For I = 5 To 1 Step -1'从第五项开始向第一项If mnufilename(1).Caption < > filename Andmnufilename(2).Caption < > filenameAnd mnufilename(3).Caption < > filename Andmnufilename(4).Caption < > filenameAnd mnufilename(5).Caption < > filenameThen '判断所选的文件是否已存在If mnufilename(I).Caption = '' Andmnufilename(I + 1).Caption < > ''Then '此处初使化菜单,利用了虚设菜单项SaveSetting k1, k2, I, filename'在注册表里保存Else

4

If 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'顺延到下一项NextSaveSetting k1, k2, 1, filenameExit FunctionEnd IfEnd IfEnd If

5

NextEnd FunctionFunction display()'显现各项文件名DIM I AS INTEGERFor I = 5 To 1 Step -1l = GetSetting(k1, k2, I)If l < > '' Thenmnufilename(I).Visible = Truemnufilename(I).Caption = lElsemnufilename(I).Visible = Falsemnufilename(I).Caption = ''End IfNext

6

End FunctionPrivate Sub Form_Load()Call displayEnd SubPrivate Sub mnuopen_Click()

7

DIM FILENAMECommondialog1.ShowOpenfilename = Commondialog1.filenameCall addfilename(filename)Call displayEnd Sub

推荐信息