jpo*_*poh 4 c++ windows menu bold
我一直在研究以粗体显示菜单项所需的努力 - 无需自己绘制菜单 - 并MFS_DEFAULT
在一些谷歌搜索后发现了菜单项状态。MSDN文档提到
MFS_DEFAULT
指定该菜单项是默认菜单项。一个菜单只能包含一个默认菜单项,该菜单项以粗体显示。
我进行了实验,似乎与文档相反,我似乎能够使用此标志以粗体显示多个(或可能全部!)菜单项。有谁有这方面的经验,即多个粗体菜单项是否存在任何陷阱?实现我想要实现的目标确实感觉有点麻烦,而且我有点担心未知的副作用(即在一个菜单中有多个“默认”菜单项)。
编辑:我还应该补充一点,本文声称该MFS_DEFAULT
标志除了以粗体显示菜单项外什么也不做;尽管如此,我对违反“官方”文档还是有点警惕......
EDIT2:这样做的目的是告诉用户有问题的菜单项(即粗体的菜单项)也可以通过双击有问题的控件来调用(菜单项是上下文菜单的一部分)。当我思考这个问题时,我没有考虑这样一个事实:通常只有一个命令可以与双击事件关联(天啊!)。因此我接受了zaphod的回答(它没有直接回答这个问题,但它确实解决了我的“问题”)
你想达到什么目的?
我怀疑,将其用于除MFS_DEFAULT
预期目的之外的其他目的的最大反对意见是,您违反了微软试图颁布的视觉约定,即粗体菜单项的含义以及用户(或辅助程序)如何使用它。例如屏幕阅读器)应该在遇到时做出反应。
如果您想做的只是引起用户对一些特别感兴趣的菜单项的注意 - 好吧,这似乎有点奇怪,但它也看起来相当无辜,如果它引起您的注意,我会感到惊讶未来会出现巨大的问题。当然,一切皆有可能!不过,我还是想知道你到底在做什么。
如果您试图通过加粗和取消加粗菜单项来公开程序的部分状态——这对我来说似乎有点出乎意料,但我不想在听到具体细节之前做出判断。
如果您有其他目标 - 例如您可能认为菜单的默认字体很丑,并且您更喜欢所有内容都加粗 - 那么您发现的方法可能是权宜之计,但也可能有更好的方法获得您想要的东西的方法,如果您愿意,我们可以更详细地讨论(也许在一个单独的问题中)。我怀疑情况是否如此,但谁知道呢?
归档时间: |
|
查看次数: |
1108 次 |
最近记录: |