MFC应用程序中的菜单提示信息
2008-01-19 20:23:58 来源:WEB开发网我正在做一个历时很久的项目。出于某些原因,项目启动之初我们实现了自己的弹出式菜单。当工具提示信息出现之后,我们将这个功能引入了我们自己的菜单,以便当用户将鼠标停留在某个菜单项上的时候,能够出现相应的提示信息。这一功能对于我们的用户来说非常重要,因为 用它可以解释为什么某个菜单项是被禁用的。由于我们的用户对 Windows 平台越来越熟悉,他们想要外观上更标准的菜单。现在我们使用了 CMenu,但是我们失去了 出色的菜单提示信息。请问如何在 MFC 中实现菜单提示信息呢?
Joakim Fagerli
多美妙的想法。Figure 1 的效果胜过千言万语。他展示了一个我写的菜单提示信息小程序——MenuTips,它实现了任何 MFC 应用程序均可复用的菜单提示信息。具备菜单提示信息特性真的很棒,因为它又排除了一个状态栏存在的理由。即便没有状态栏,你依然能够知晓每一个命令是做什么用的。更重要的是,提示信息 显示在每个菜单项旁边很更显眼。在当今的巨型显示器面前,很多用户甚至根本就意识不到出现在状态条上的菜单提示信息——它离人们的视线太远了。
Figure 1 菜单提示信息
我在类 CMenuTipManager 里面实现了菜单提示。如果你想在自己的应用程序中使用菜单提示功能,只需要在主窗口类中添加一个 CMenuTipManager对象,然后在 创建框架的时候调用 Install 即可:
//in CMainFrame::OnCreate(...)
m_menuTipManager.Install(this);
需要做的就这么多。现在当用户将鼠标停留在某个菜单项上面超过一秒钟,菜单提示信息管理器就会将对应的命令提示显示成一条提示信息,如 Figure 1 所示。CMenuTipManager 从你的程序的串表中获取提示信息,那也是 MFC 寻找状态栏提示信息的地方。
更多精彩
赞助商链接