| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
Visual C++加速键和菜单
作者:佚名    文章来源:网络    点击数:    更新时间:2006-11-13
  菜单和加速键密切地联系在一起。这两种资源类型联手协作,让用户能更容易地完成任务。大家都知道菜单是什么——它是分层命令结构的物理表示。加速键提供该结构的快捷方式,以提高用户操作的速度。例如,要创建一个新文件,通常用File | New(文件|新建)命令或CTRL-N加速键,两种方法可以产生相同的结果。

    Visual C++将菜单和加速键作为两种不同的资源存储。图3.5显示了示例应用程序的主菜单和相应的加速键。注意有一点很有意思,两种资源使用相同的名称IDR_MAINFRAME。应该记住这一点,因为该名称是将两种资源(菜单和加速键)链接在一起的资源名。

    让我们看看菜单和加速键是怎样协作的。将新的条目添加到现有的加速键资源中,这一点很容易。在Accelerator(加速键)窗口中右击,然后从上下文菜单中选择New Accelerator(新加速键)。就会看到Accel Properties(加速键属性)对话框,如下图所示。
    此时,需要从下拉列表框中选择一个ID。Menu ID通常使用所需菜单层次的组合来得到名称,然后在名称前加上字符ID。例如,如果想为View | Toolbar(视图|工具条)命令创建一个加速键(我在实例中就是这样做的),就应在ID字段中选择ID_VIEW_TOOLBAR。也可以在ASCII码和虚拟键(VirtKey)之间进行选择。当你准备添加与某个菜单命令相关的按键时,只需单击Next KeyTyped按钮,你会看到一个比较小的对话框,告诉你按下想要当作加速键使用的组合键。在这个示例程序中,我按下CTRL-T。你会看到,CTRL复选框中有一个复选标记,Key域中有一个"T",单击Close(关闭)方框结束添加加速键操作。
    如果现在就编译并运行程序,刚刚添加的加速键即能正常工作。事实上,你可能正想这样。但是,用户可能想不到,快速执行一个菜单命令可以用加速键。要向菜单中添加加速键,需要修改当前的菜单。

    向菜单命令中添加新的文本,这一点很容易。打开View(视图)菜单,然后右击Toolbar条目。从上下文菜单选择Properties(属性),你会看到如下所示的Menu Item Properties(菜单项属性)对话框。
    本例中,我们要做的是更改Caption(标题)域以指明新的加速键。你可以使用通常用于格式化文本的C和Windows格式化字符。将Caption域修改成“&Toolbar\tCtrl-T”,告诉Windows你想看到单词“Toolbar”,字母"T"加上下划线,然后是一个空格,最后CTRL-T告诉用户该菜单命令的加速键是什么。
    那么,如果想添加新的菜单该做些什么呢?只要选择菜单栏或现有菜单上的空白点,开始输入。系统会自动显示一个Menu Item Properties(菜单项属性)对话框。在本实例中,我们将在工具条中添加一个Format菜单,该菜单只有一个菜单项Font(请记住输入&Format和&Font,这样每个菜单项的第一个字母才能加上下划线)。添加了新的菜单项后,将Format移到Help菜单左侧。此时的菜单如下图所示。

    现在我们要添加一些使这个新菜单项发挥作用的代码。右击Font菜单项,然后从上下文菜单中选择ClassWizard,再选择Message Maps选项卡。你会看到MFC ClassWizard对话框,如下图所示。

    单击Messages列表中的COMMAND。单击Add Function(添加函数)按钮创建这个函数。你会看到Add Member Function(添加成员函数)对话框,单击OK接受缺省的函数名。单击Edit Code(编辑代码)按钮编辑这个新函数。程序列表3.3显示了向我们的程序中添加字体特性时所需的代码。虽然也可以将其添加到CEdit控件中,但只有富文本编辑屏幕(CRichEdit控件)才原本就具有这种能力。

    如你所见,在我们的示例中添加处理字体的能力简直太容易了。如果现在编译并运行这个程序,用户就能够改变缺省字体,或选择文本并改变所选文本的字体。下面是利用已经具备改变字体能力的这个示例程序修改字体方式的示例。

    技巧 显示应用程序所需的大部分菜单并不需要做什么艰苦的努力。你真正需要完成的工作,只是运用各种菜单项的准确ID和工具条上的相关按钮。可惜的是,许多特殊的ID目前尚未列入文档。例如,如果想执行字体对话框而不做任何程序设计,要确保菜单项的ID是:ID_FORMAT_FONT。同样地,如果向应用程序中添加工具条按钮,工具条按钮应该与菜单项使用相同的ID。可以在MFC\INCLUDE文件夹的AFXRES.H文件中找到所有特殊的ID,无论它们是否已经列入文档。
  • 上一篇文章:

  • 下一篇文章:
  • 相关文章