03界面编程1-菜单(3)

2020-04-03 13:02

的+号框时,会报错“在另一个编辑器中打开”,参见图3-6。这是VC为了维护资源的一致性而采取的一种措施,目的是避免同时以文本和可视方式打开和编辑资源文件,可能会产生的二者内容不一致的冲突。解决办法是,先关闭资源头文件和资源脚本文件,接着单击“Student.rc”项左边的-号框折叠,然后再单击“Student.rc”项左边的+号框展开即可。

图3-6 展开资源文件时报错

? 双击要编辑的菜单资源的ID(此时只有一个IDR_MAINFRAME),则VC会在中

部的编辑区打开菜单编辑器及对应的菜单资源供你编辑,参见图3-5的中部。 在编辑菜单和菜单项时,还需要使用属性窗口。

2.属性窗口

? 打开:按工具条右边的属性窗口钮、选“视图\\属性窗口”菜单项或按“Alt+Enter”

组合键,都可打开属性窗口。它通常位于VS窗口的右部,其默认页一般为按分类顺序排列的属性页,参见图3-5。

? 钉住:为了避免属性窗口自动隐藏,可单击其右上角的钉子形标识,将其“钉在”

屏幕上(此时钉子形标识变成了)。

? 编辑:在属性窗口中单击对应属性项的右栏,选择其下拉式列表中的项,或键入/

修改其中的文本串。

3.常用菜单属性

下面(按属性窗口中的分类)列出若干常用的菜单[项]属性,其中用粗体字表示的是属性的默认值和几个最重要的属性。

? 外观:

? Caption(标题):空/文本串,为菜单[项]的描述串,含必须的菜单名与访问键、

及可选的省略号与快捷键指示串。菜单[项]标题的完整格式为:

菜单[项]名称(&访问键字符)...\\t快捷键指示串

11

例如:“文件(&F)”、“新建(&N)\\tCtrl+N”、“打开(&O)...\\tCtrl+O”、“&File”。 其中:

? 菜单[项]名称可用中文词组或英文单词,应该尽量简洁。

? 编辑时访问键一般由and符(即C/C++语言中的取地址符/引用符/与符)

“&”和一个英文字母组成(如&F),运行时则显示为带下划线的字母(如F)。

? 若使用的是中文菜单名,则访问键一般位于菜单名串后的(ASCII

码)圆括号内,而且访问键字符一般为对应英文菜单名单词的大写首字母,如:文件(&F)。

? 若使用的是英文菜单名,则将访问键的&符直接放在快捷键字母(一

般为单词的首字母)的前面即可,如:&File。

? 由3个句点字符组成的省略号“...”提示用户,选中该菜单项会弹出对话

框。该部分虽不是必须的,但却是编程惯例,应该尽量遵循。

? 如果菜单项有快捷键,则应该给出其对应组合键的指示串,并在前面添加

水平跳格(Tab,制表符)的转义字符“\\t”,系统会在该指示串前留出空白,并且在弹出菜单中右对齐。注意,在MFC中,标题串中的快捷键指示串,只能对用户起提示作用,并不能真正设置快捷键。设置快捷键的具体方法,参见后面的3.4节。

? Checked(选中):True/False(真/假),表示该菜单项是否被用户选中,用于

布尔型菜单项。若为True,则会在菜单项的左边出现钩形的选中图符。在编辑菜单项时,可以通过单击选中菜单项的左端矩形框,来切换其取值为True或False。

? Enabled(启用/激活):True/False,设置该菜单[项]的功能是否可用。当取值

为True/Flase时,菜单[项]启用(激活)/ 禁用(灰化),且其标题文本在编辑和运行时都显示为黑色/灰色的。注意,在MFC中,没有添加事件处理程序(消息响应函数)的菜单项自动为不可用的,而添加了事件处理程序的菜单项自动为可用。即该属性的设置,对MFC是无效的。在MFC中,必须通过响应菜单项的用户界面更新命令消息UPDATE_COMMAND_UI,来实现启用和禁用菜单项的功能,参见后面的3.3.5小节。注意:禁用与启用状态,对直接位于菜单条中的菜单项是无效的,但对于位于下拉式或浮动式弹出菜单中菜单项则

12

是有效的。

? Pupup(弹出):(对顶层菜单为)True/(对菜单项为)False,属性值为真和

假分别对应于(下拉式)弹出菜单和菜单项。弹出菜单必须选True,而菜单项则必须选False。对取值为False的菜单项,可以设置ID并添加事件处理程序,但是对取值为True的弹出菜单则不能。注意,在菜单条中也可以放置菜单项,即顶层菜单项,但需要将菜单的Pupup属性值修改为False。

? 杂项

? Help(帮助):True/False,对顶层菜单,若Help属性值为True,则指定该菜

单及其右边的菜单都在菜单条上右对齐(参见图3-7)。这是老式的Windows程序风格,现在一般不再使用。注意,本属性对菜单项无效。

图3-7 Help属性为True的“帮助”菜单

? ID(标识符):ID_nnnnn /(由大写英文字母和下划线组成的)符号常量文本

串(对应于一个整数常量,定义在resource.h头文件中),标识该菜单项资源,用于消息处理和对象指定。菜单项的标识符一般形为:ID_菜单的英文名_菜单项的英文名,例如“文件\\打开”菜单项的标识符为ID_FILE_OPEN。还可以单击该属性项右栏,会出现的下拉式列表框,再单击其右端的

钮,然后

在列表中选择想要的(已有)ID。本属性对(Popup属性都为True的)弹出菜单是不可用的,因为其事件响应(显示弹出菜单)不由用户程序处理,而是由操作系统负责。

? Prompt(提示):空/(以\\n分隔的)文本串,为菜单项的详细说明,例如“打

开现有文档\\n打开”。当用户选择该菜单[项]时,“\\n”前的内容会显示在程序窗口的状态条中;当鼠标停留在该菜单项所对应的工具条按钮上时,提示串中“\\n”前的内容也会显示在状态条中,而“\\n”后的内容会显示在(在按钮附近弹出的)一个小浮动框中。该属性对弹出菜单无效。

? Separator(分隔条):True/False,为True时菜单项变成分隔条,用于在菜单项

列表中分隔菜单项组。例如,默认的文件菜单中,菜单项被三个分隔条分成了四个组(参见图3-5中部)。该属性对弹出菜单也不可用。

13

3.2.3 编辑菜单

下面介绍使用菜单编辑器和属性窗口进行菜单和菜单项编辑的具体方法。 1.添加菜单

在MFC应用程序中,一般需要在已有菜单条中添加自己的(下拉式顶层)弹出菜单。例如在本例Student中,要在已有的“帮助”菜单前,插入3个新菜单:“姓名(&N)”、“成绩(&S)” 和“测试(&T)”。

? 加入新(弹出)菜单

? 添加新菜单——如果要在菜单条中所有已有(下拉式顶层)菜单的右边添加新

的(弹出)菜单,可以直接选中菜单条最右端的“请再此处键入”虚框。 ? 插入新菜单——为了在菜单条中(已有的)某个菜单的左边插入新菜单,可先

选中该菜单,然后 ? 按Insert键。

? 或按鼠标右键,在弹出的快捷菜单中选“新插入”菜单项。 ? 或选“编辑\\菜单\\新插入”菜单项。

则都会在所需位置出现空白菜单(矩形虚框),其下面还带有添加菜单项的“请在此处键入”虚框,参见图3-8。

图3-8 添加新菜单

? 键入菜单名和访问键:在空白菜单的矩形虚框中直接键入菜单名和访问键(以后还

可在属性窗口中的Caption栏中对其进行修改)。

? 中文:菜单名(&访问键字母),如“文件(&F)”,显示为“文件(F)”。

? 英文:[菜单名左部]&访问键字母[菜单名右部],如“&File”,显示为“File”。 在键入或修改菜单名和访问键后必须按回车键,才能完成了菜单的添加,然后才可以开始设置菜单属性和添加新菜单项。

? 设置菜单属性:除了键入的菜单名和访问键外,弹出菜单的其他菜单属性选项一般

使用默认值,如Enabled和Popup为True、Break为None、其余选项为False或空。

14

2.添加菜单项

? 选中菜单:首先需要选中需要添加菜单项的(顶层或子弹出)菜单。 ? 加入菜单项:

? 添加新菜单项:如果要在菜单中所有已有菜单项的下面添加新菜单项,可以直

接选中菜单最下面的“请在此处键入”虚框,参见图3-9。

图3-9 添加新菜单项

? 插入新菜单项:为了在菜单中(已有的)某个菜单项的上面插入新菜单项,可

先选中该菜单项,然后(似上面的“插入新菜单”) ? 按Insert键。

? 或按鼠标右键,在弹出的快捷菜单中选“新插入”菜单项。 ? 或选“编辑\\菜单\\新插入”菜单项。

则会在所需位置出现空白菜单项(矩形虚框),其右边还带有添加子菜单项的“请再此处键入”虚框。

? 键入标题串:在空白菜单项的矩形虚框中键入菜单项名、访问键、(对话框)省略

点和快捷键提示串,后两项是可选的。一般形为“菜单名(&字母)...\\t切换键+字母”,例如“李四(&L)...\\tShift+L”,参见图3-10。按回车键完成菜单项的添加。

图3-10 键入菜单项的标题串

? 设置ID:在属性窗口中的ID栏中选择(已有的)、修改(默认的)或键入(新的)

形如“ID_菜单名_菜单项名”的(用下划线分隔的大写字母串)符号常量。例如ID_FILE_OPEN、ID_NAME_ZS。注意:

? 中文菜单项ID的默认值一般形为ID_nnnnn(如ID_32771),不应该直接使用

该值,因为它既不利于自动生成有意义的事件处理程序的名称,又不利于程序的阅读和维护。

? 在键入ID值后必须按回车键,才能完成ID值的修改,不然键入的ID值会被

自动丢失。

15


03界面编程1-菜单(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:华中科技大学C语言实验与课程设计上机实验报告汇总(1~8全部)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: