知识大全 动态菜单项、状态条提示、工具条提示问题

Posted

篇首语:古人学问无遗力,少壮工夫老始成。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 动态菜单项、状态条提示、工具条提示问题相关的知识,希望对你有一定的参考价值。

动态菜单项 状态条提示 工具条提示问题 赵湘宁本文例子代码 问题的提出        一个应用程序想要动态改变菜单项 使用CCmdUI::SetText("Menu Text")可以改变菜单文本 但是如何动态改变工具条和状态条的文本呢?              有几种策略 避免 欺骗 面对            首先 避免 为什么你非要动态改变菜单项?一般说来 这是个坏主意 动态菜单容易把人搞糊涂 我正在使用你的产品 本来用得好好的突然菜单项变了 不管什么时候 每当我看到一个改变菜单的应用时 都要琢么为什么他们需要这样的用户界面设计                   然而 每一个规则都有例外 许多例子的动态改变菜单项都很酷 例如 在大多数面向文档的应用程序中 文件 菜单的最后一项MRU(最近使用的文件列表) 但作为一个用户 面对动态菜单项的弊端是显而易见的 我把避免动态菜单提升为设计准则 即便是采用了动态菜单的设计 也要让用户注意不到菜单项是改变 否则 It&# ;&# ;s         bad design 反之 如果用户注意不到菜单项的改变 It&# ;&# ;s OK                   但是动态改变状态条提示又如何呢?在MRU菜单中 无论什么文件 状态条一般都提示 打开选择的文档 这是另一个要避免的策略 只有特别本位或任性的程序员会操心实现一个动态提示的菜单 如 打开某某文件 而不去用完全可行并且有效的提示 打开这个文档 你完全有权利不遵循这种惯例 也就是说 如果你非要改变状态条提示的话 那就请往下继续看吧 你会明白的               使用动态菜单的另一场合是当你想设置某个布尔状态时 例如 隐藏或显示工具条 当工具条可见时显示 隐藏工具条 反之显示 显示工具条 更为普通的方法是用单个命令以校验标记来实现 当工具条可见时显示标记(如下图)      GUI的高手们常常争论哪种方法更好 可能它没有什么差别 但是即使你决定使用动态提示(如隐藏/显示工具条) 你也能使用单个的命令ID ID_VIEW_TOOLBAR 和单个的提示 隐藏或显示工具条 我认为没有必要去实现动态提示                   在所有建议中 你要做的第一件事情是好好重新考虑用户的界面 你确实需要动态菜单项吗?以及你确实需要菜单的动态提示吗?除非两个问题的答案都是 是 否则就止住 别再浪费时间                   要改变菜单文本是容易的 只要实现ON_UPDATE_MAND_UI处理器并调用CCmdUI::SetText即可                void CFrameWnd::OnUpdateToolbar(CCmdUI* pCmdUI)                    BOOL bVisible = IsToolbarVisible( );            // Note same mnemonic (&T) for both cmds!            pCmdUI >SetText(bVisible ? "Hide &Toolbar"         : "Show &Toolbar");                        仅此而已 下一步是提示 当你创建了一个菜单提示 你给它一个ID号 MFC使用这个ID来查找资源串获取命令提示 例如               STRINGTABLE DISCARDABLE        BEGIN            ID_VIEW_TOOLBAR "Show or hide the toolbar\\nToggle         ToolBar"        END                   如果你的菜单命令也有工具条按钮 MFC用 \\n (新行标记)后的文本作为工具条提示文本 因为MFC允许每个命令只能有一个串 如何动态改变提示呢?最简单的方法是编写一个提示在两种情况下都工作 象前面讨论的隐藏 显示工具条的例子 但这种方法显得很笨拙                   获得动态提示的一个方法是将命令分成几个命令 例如 ID_HIDE_ TOOLBAR 和ID_SHOW_TOOLBAR 只是一种欺骗策略 这些命令的命令处理器最终要做的事情是改变菜单项的ID为其它命令项的ID 具体实现细节我就不讲了 自己做吧                   使用两个ID可能是一种简单的方法 但它不适用于所有情况 例如在MRU文件菜单中 对于每个可能的文件名字你会需要不同的ID         cha138/Article/program/c/201401/30253

相关参考

亚洲营养信息中心的10条食品安全提示

为了保护你和家人免受食品相关疾病的影响,亚洲营养信息中心日前发出了10条食品安全提示:  1.认真对待“有效期”和“保质期”;不购买过期产品,发现过期产品应向商店经营者报告。如果包装食品在包装上标明的

知识大全 24条提示让你面试更出色

面试是你整个求职过程中最重要的阶段。成败均决定于你面试时的短短一瞬间的表现。每个人都能够学会怎么出色地面试,而且绝大多数的错误都可以预期并且避免,下面这24条提示将给你带来成功的契机。1、带多几份履历

知识大全 请你在道路的急拐弯处,用幽默富有情感的语言写一条提示语

请你在道路的急拐弯处,用幽默富有情感的语言写一条提示语前面很有可能是迎接你的黑白无常,请小心!嘿,朋友!让你的车子乖巧一点,它有一点不懂事的!你的车子可不是个忠诚的爱人,你让它生气,它可会一走了之的!

《灵枢·经脉》篇提示了怎样的治疗原则?

同一条经脉是动病和所生病的证候各种各样,可说是“异病”,但可以通过同一条经脉进行诊治,因此提示了异病同治的原则。

知识大全 我家的电脑以前中过毒 用360杀了 之后删除很多文件的时候会死机 一直提示正在删除中 进度条是白色的 怎么

我家的电脑以前中过毒用360杀了之后删除很多文件的时候会死机一直提示正在删除中进度条是白色的怎么朋友,【答案原创,引用请说明作者:力王历史】电脑死机,解决方案,有以下方面:1。重启电脑,出完电脑品牌后

知识大全 动态提示的下拉框

  <METAcontent=fason阿信name=Author><title>动态提示的下拉框</title><style>acolor:red;t

知识大全 面试提示24则

面试是你整个求职过程中最重要的阶段。成败均决定于你面试时的短短一瞬间的表现。每个人都能够学会怎么出色地面试,而且绝大多数的错误都可以预期并且避免,下面这24条提示将给你带来成功的契机。1、带多几份履历

知识大全 我诺基亚5320下了破解工具安装时提示证书错误,怎么解决

我诺基亚5320下了破解工具安装时提示证书错误,怎么解决去天网下载个塞班直签,给破解软件签名,就可以安装了。诺基亚6120CI未破解,下载软件后安装时提示证书过期、证书错误进入文件管理,找到要安装的软

知识大全 用状态栏提示改善JavaGUI

用状态栏提示改善JavaGUI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个应用程序有多复

知识大全 出色面试24条秘籍

 试是你整个求职过程中最重要的阶段。成败均决定于你面试时的短短一瞬间的表现。每个人都能够学会怎么出色地面试,而且绝大多数的错误都可以预期并且避免,下面这24条提示将给你带来成功的契机。1、带