分享
 
 
 

规范设计Windows应用软件菜单

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

在开发软件的菜单界面时,能按Windows所设定的规范进行,不仅能使所开

发出的应用软件的菜单界面更美观丰富,而且能与Windows中各软件协调一致,

使大量熟悉Windows操作的用户,一看菜单,就能根据平时的使用经验,触类旁通

地知晓该应用软件的各功能和简捷的操作方法,增强软件的灵活性和可操作

性。

以下以VB5.0的工具菜单栏(Tools)中的“菜单编辑器”和一个“学生档

案管理软件”(主要有“文件”、“系统初始化” 、“年级”、“输入与查

询”等菜单,分别完成报表打印、新建年级库、选年级、以及数据库数据的输

入与查询等)为例,说明Windows应用软件菜单设计的一些规则:

一、暂时不可操作的菜单命令项一般要屏蔽变灰

Windows菜单中有一些菜单项是以变灰的形式出现的,并用虚线字符来显

示,这一类的命令表示当前不可用,也就是说,执行此命令的条件当前还不具

备。例如,在学生档案管理软件中,初始的“输入与查询”菜单为灰,因为在

没有选中“年级”的情况下,系统将不知要查询哪个年级的学生资料。在图1

中设计时,点击“输入与查询”菜单条的“有效(E)”属性,改变其默认的

“有效”为“无效”,然后设计在“年级”菜单中各年级的Click事件中传递

所选中的年级信息给“输入与查询”模块后改变后者的“有效”属性值,让其

可操作:

Private Sub mnu98dz_Click()

Transfer = "c:\dagl\98dz.mdb"

mnuFind.Enabled = True

End Sub

二、正在起作用的菜单命令旁打上选中标记(√)

Windows中有一些命令是触发式的,打勾号表明该命令正在起作用,否则

表明不起作用,可通过点击,反复切换。例如,在上述所举的学生档案管理软

件中,当选择了某一年级时,系统就在对应年级菜单前打上“√”,表明正在

操作的是此年级的数据库。要做到这一点,只要把菜单编辑器中相应菜单条的

“复选(C)"框选中即可,然后在菜单的驱动事件加入如下语句来切换该属性:

mnu98dz.Checked=not mnu98dz.Checked

三、为命令选项设置访问键(Access key)

菜单项中带有下划线的字母,称为该命令的访问键,是为了方便使用键盘

的用户而设置的,按Alt键和该字母时即可打开该菜单,增加访问键只要在菜

单编辑器的“标题(P)”框中,在要让其成为访问键的字母前加“&”即可,

当然,访问键最好不要重复,否则系统只认定第一个有效。

四、为命令选项增加快捷键(Shortcut Key)

某些菜单命令的右边有一组合键,称为该命令的快捷键,可以不打开菜单

而直接按快捷键来选择执行此命令。为一个命令项增加一个快捷键,可在菜单

编辑器中的“快捷键(S)”列表框中为该命令项分配一个,列表中一个快捷

键只能被分配一次,否则系统会拒绝接受。

五、在要弹出对话框的命令选项后增加省略号(...)提示用户

Windows中,如果命令项后面有省略号(...),表明选择此命令将引出一

个对话框,从对话框系统要求用户提供更多执行该命令所需的信息,在设计时

只要在会引出对话框的菜单项的标题后增加“(...)"提示即可。

六、用右指向的箭头(→),来指引用户选择此项将引出级联菜单

(Cascading Menu)

级联菜单即所谓的子菜单,在VB中箭头由系统根据菜单编辑器中设计菜单

大纲时所安排的“缩进”度而自动实现的,因此,关键是在设计菜单时合理安

排大纲中各菜单项上下级的逻辑关系,在VB中最多 可以有四级子菜单。

七、对相关的命令用分隔条(Separate Bar)进行分组

为了让用户迅速地在菜单中找到他要执行的命令项,有必要对菜单中相关

的一组命令用分隔条进行 分组,如文件菜单中,把有关打印输出的一组

命令:“页面设置”、“打印预览”、“打印”等用分隔条醒目地进行分隔。

这只要在需要进行分组的命令之间插入一个特殊的命令条,该命令条的“标

题”为“-”,而“名称”任意,因为在程序中一般不会引用此命令的名称。

八、建立动态菜单,提高软件的灵活性

动态菜单即运行时会伸缩的菜单,Windows中有许多软件的“文件”菜单

中都具有记忆最近操作过的几个文档名的功能,在本文所举例的学生档案管理

软件中,因为每年都会有新的学生到校,在形成新的年级时,要在“年级”菜

单中动态地增加新的年级名称以供选择和查询,这首先要在设计时生成菜单命

令的控件数组(Menu Control Array),在菜单的编辑器中加入一个菜单选项,

设其Index属性设置为0,然后可以加入名称相同(在本例中名称为MnuNj),

Index值相邻递增的菜单选项(比如加入10个),设计时让它们标题框均为空留

作日后引用新年级名,并设这些备用菜单条的“可见”属性为无效4目前不可

见。在有建立和删年级库功能的“系统初始化”菜单驱动事件中引

用这个数组名和索引值在“输入与查询”中动态地加进新的年级名选项,并且

让可见或不可见(在删除时):

Private AddMenu_Click()

Counter=counter+1

Nj=Nj+1 'Nj是一个模块级变量,初值为1998

MnuNj(counter).Caption= Nj & "年级"

MnuNj(counter).Visible=Ture

End Sub

Windows中许多应用程序的“文件"菜单记住最近使使过的文件名的实际方

法与此类似。

九、生成弹出式菜单,增强软件的可操作性

有时为了方便用户需要,为一些最常用的命令建立右键弹出式快捷菜单,

这种菜单的前期设计和普 通菜单一样,不同的是一般要先点击“可见

(P)”框,让此菜单不可见,然后在窗体的MouseDown或 MouseUp事件中引

用PopupMenu方法来实现在窗体上按下鼠标右键时弹出此菜单:

Private Sub MdiForm1_MouseDown(Button As Integer, Shift As

Integer, X As Single, Y As Single)

If button=2 the Popupmenu MnuEdit

'MnuEdit为制作的要弹出的菜单

End Sub

PopupMenu方法将忽略初始设置的“不可见”属性。

使用Windows下的其他软件开发工具设计菜单时,情形与之类似。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有