【讨论】关于MDI程序菜单使用的郁闷。。。

littlefat littlefat 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看到界面设计的原则中,有一条是:灰色而不是隐藏,意思是说,当一个功能当前不可用时,不要将它从菜单中移走,而是让它变成不可用(灰色),因为菜单的忽隐忽现容易让用户摸不着头脑,不利于让用户建立精确的心里模型从而加快学习软件使用的速度。。。

偶深以为然!看看微软的Office,的确是这样。

偶现在要做一个MDI界面程序,正为菜单的设计而苦恼:

第一:偶不想用菜单合并,因为菜单合并实际上只会将子窗口的同类菜单覆盖而不是真正合并到主窗体的菜单中,例如:假设主窗口有一个“文件”菜单,文件菜单下有“新建”、“打开”两项;子窗口也有一个“文件”菜单,文件菜单下有一个“另存为”项,那么打开菜单合并功能后,在运行时打开子窗口后,主窗口的“文件”菜单中只有一个“另存为”项了。。。不知道是不是偶不知道哪里还有什么设置的地方可以让菜单合并时是真正的合并而不是覆盖。。。

第二:如果第一点所述无法解决(即菜单合并只能覆盖而不能真正合并),那么,根据前面所述的界面设计原则,只有将所有的功能菜单都添加到主窗口的菜单中,子窗体不再使用菜单,并且根据子窗体的状况不同,动态地允许或禁用(灰色)主菜单中的相关菜单项了,但是这样又带来两个问题:
1.程序设计中还有一个重要的原则是:尽量做到窗体的功能都在本窗体自身的代码中完成,不要轻易调用别的窗体的过程和函数。相信大家也认同这一点,即尽量降低窗体(代码)之间的耦合度。如果要遵守这一原则,而又如前所述只能在主窗体中设置菜单(因为考虑到菜单合并的不理想问题而不再在子窗体中设置菜单),那么岂不是所有窗体和子窗体的功能(菜单)都只能在主窗体的代码中完成?!
2.即使这样,动态允许和禁用菜单项的依据是什么呢?实际程序的情况是多个子窗体,多个子窗体可能同时打开,多个子窗体可能对同一菜单项的允许和禁用(灰色)产生争议。。。

还有一种说法是干脆放弃使用MDI程序,连微软现在也只在MMC中使用,其他应用程序,比如Word、Excel,都不是MDI程序。。。


偶迷茫中,也不知道是不是正确表达了偶的意思。。。
...全文

相关推荐

MobaXterm终端工具个人学习版安装包及常用配置备份

资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。

encrypt_

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

夹心饼干丶

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

11232131231231是的

11232131231231是的

dwharry123
评论 8
收藏 已收藏
分享
返回顶部
littlefat
Delphi 5,944 成员 262,941 内容