2008-11-05 28 views
1

我一直在研究如何让菜单项以粗体显示 - 而不必自己绘制菜单 - 并在Google搜索后发现MFS_DEFAULT菜单项状态。该MSDN documentation提到以粗体显示的多个菜单项

MFS_DEFAULT
指定菜单 项是默认的。菜单 只包含一个默认菜单项, 以粗体显示。

我尝试它出现这违背了文档,好像我能够使用此标志显示多个(或可能是全部!)菜单中的粗体项目。有没有人有这方面的经验,即如果有多个粗体菜单项的缺陷?对于我想要达到的目标而言,它确实感觉有些ha and,我对未知的副作用(即在单个菜单中有多个“默认”菜单项)感到有点担心。

编辑:我还应该补充说,this article声称MFS_DEFAULT标志什么也不做,只是以粗体显示菜单项;仍然,我有点小心违反'官方'文档...

EDIT2:这样做的目的是告诉用户,问题的菜单项(即那个粗体)也可以通过双击有问题的控件来调用(该菜单项是上下文菜单的一部分)。当我想到这个问题时,我并没有考虑这样一个事实 - 通常 - 只有一个命令可以与双击事件(d'oh!)相关联。因此我已经接受了zaphod的回答(它不直接回答这个问题,但它确实解决了我的问题)

回答

4

你想达到什么目的?

我怀疑,使用MFS_DEFAULT的最大目的不是用于其目的之外的目的,就是您违反了Microsoft正在试图公布关于粗体菜单项意味着什么的视觉约定,以及用户(或者屏幕阅读器等辅助程序)在遇到问题时应该做出反应。

如果你所要做的只是把用户的注意力放在一些特别感兴趣的菜单项上 - 好吧,这看起来有点奇怪,但它看起来还很无辜,我会很惊讶如果它导致你在路上遇到巨大的问题。当然,任何事情都可以!不过,我想知道你到底在干什么。

如果您试图通过粗体显示和解开菜单项暴露部分程序状态 - 这对我来说似乎有点意外,但我不愿意在听取具体内容之前通过判断。

如果您还有其他目标 - 比如您可能认为菜单的默认字体很丑,并且当所有内容都粗体显示时您更喜欢它 - 那么您发现的方法可能是合适的,但也可能存在如果你愿意,也可以更好地获得你想要的东西,我们可以更详细地讨论(也许在另外的问题中)。我怀疑是这样,但谁知道?