02界面编程-1(菜单)_第1页
02界面编程-1(菜单)_第2页
02界面编程-1(菜单)_第3页
02界面编程-1(菜单)_第4页
02界面编程-1(菜单)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第 2 章章 界面编程界面编程 Windows 是一种具有 GUI 的操作系统 GUI 包括 窗口 菜单 对话框和控件等基本 界面元素 及 MFC 提供的工具栏和状态栏等组合控件 还有键盘 鼠标等消息响应与事 件驱动 2 1 菜单设计菜单设计 1 菜单 菜单 菜单 menu 是 GUI 程序的主要命令接口 菜单可分为包含若干菜单项的弹出 Popup 式 菜单和发送命令消息的菜单项 menu item 两大类 而其中的弹出式菜单 以下简称为菜单 又可以分成菜单条中的顶层菜单和按鼠标右键后弹出的浮动菜单 可以用键盘 快捷 和 鼠标 直观 这两种输入设备来访问菜单和菜单项 以后简记为 菜单 项 在用键盘 访问时 还可使用助记键和快捷键 访问键 mnemonic key 助记键 hot key 热键 菜单 项 中出现的带下划线的字符 一般为大写英文字母 例如菜单条上 文件 F 菜单的字母 F 和文件菜单 中的 另存为 A 菜单项的字母 A 使用方法 按 Alt 访问键 可 选中 当前窗口菜单条上访问键所对应的菜单 项 例如按 Alt F 会打开 文件 F 菜单 按 访问键 本身 可 选中 当前已展开菜单中其所对应的的菜单项 例 如在已经打开的文件菜单中 按 A 会选中 另存为 A 菜单项 从而 打开对应的 另存为 对话框 快捷键 shortcut key accelerator key 加速键 出现在菜单项右端的功能键组合 一般为 Ctrl Alt Shift 大写英文字母或功能键 Fn 用快捷键可以直接访问当前窗 口的任意菜单项 不论其所在的菜单是否被展开 例如按 Ctrl O 可以直接选 中 尚未打开的 文件菜单中的 打开 O Ctrl O 菜单项 从而打开对应的 打开 对话框 若按某菜单项会弹出一个对话框 则一般应在该菜单项名后加上 由 3 个句点字符组 成的 省略号 在应用程序中一般还可以按鼠标右键弹出一个带编辑和属性等功能的浮动式菜单 菜单项和其他所有资源一样 都有一个 ID IDentifier 标识符 通常是以下划线分割 的大写字母组成的符号常量 在 VC 中 一般不需要直接编写符号常量的宏定义 而是由 资源编辑器代劳 2 缺省菜单 缺省菜单 用 MFC 应用程序向导建立应用程序时 若选择的是单文档或多文档类型 而不是基于 对话框类型 则会自动建立预定义的菜单条 单文档应用程序只有一种菜单条 缺省时含 文件 编辑 查看 帮助 4 个下拉式菜单 ID 为 IDR MAINFRAME 对多文档应用程序有两种菜单条 主框架菜单 在程序刚启动或没有任何文档子窗口时显示 缺省时含 文件 查看 帮助 3 个下拉式菜单 ID 也为 IDR MAINFRAME 文档菜单 在有文档子窗口时显示 缺省时含 文件 编辑 查看 窗口 帮助 5 个下拉式菜单 增加了一个 窗口 下拉菜单 ID 为 IDR AppNameTYPE 例如 IDR TestTYPE 在 MFC 类库中 由 CMenu 类支持菜单 该类是直接从 CObject 的类派生的 CObject CMenu 但是在 MFC 编程中一般不直接使用该类 为了演示编辑过程 用 MFC 应用程序向导创建一个名为 Student 的单文档应用程序 其余选项全用缺省的 这只需在对话框的 应用程序类型 页中选择 单文档 后按 完成 钮即可 编译连接运行后的结果如下图所示 3 菜单编辑 菜单编辑 在应用程序设计中 一般需要对自动产生的缺省菜单进行编辑 修改 添加 删除 在 菜单编辑器中 可以添加 下拉式 菜单 在菜单中添加菜单项 为菜单项设置 ID 名称 文本串 访问键 快捷键 提示文本串和其他属性 注意 在编程过程中 对 VC 的任何操作 都可以取消和恢复 按 Ctrl Z 或选 编辑 撤销 菜单项或单击工具条中的钮 可取消前一次的操 作 按 Ctrl Y 或选 编辑 重复 菜单项或单击工具条中的钮 可重复前一次的操 作 1 菜单编辑器 打开菜单编辑器 在 VC 左中部的项目工作区中选 资源视图 页 如果没有 可以选 视图 资源 视图 菜单项或按 Ctrl Shift E 组合键 单击 Student 项左边的 号框 展开各个资源文件的列表 此时只有一个文件 Student rc 单击其中 Student rc 项左边的 号框 展开各类资源的树形列表 单击其中 Menu 项左边的 号框 展开所有的菜单资源的 ID 列表 双击要编辑的菜单资源的 ID 此时只有一个 IDR MAINFRAME 则 VC 会在中 部的编辑区打开菜单编辑器及对应的菜单资源供你编辑 参见下图 菜单编辑窗口 编辑菜单和菜单项时 需要使用属性窗口 属性窗口 打开 选 视图 其它窗口 属性窗口 菜单项或按 Alt Enter 组合键 打开属 性窗口 它通常位于 VS 窗口的左边 其缺省页一般为按分类顺序排列的属性页 钉住 为了避免属性窗口自动隐藏 可单击其右上角的钉子形图标 将其 钉 在 屏幕上 此时钉子形图标改成了 编辑 在属性窗口中单击对应属性项的右栏 选择其下拉式列表中的项 或输入 修改其中的文本串 菜单 项 属性 缺省值用绿色表示 外观 Caption 标题 空 文本串 为菜单 项 的名称 访问键和快捷键 格式为 菜单 项 名称 在类的代码文件中添加 消息映射宏 ON COMMAND ID SCORE MATH 或 MessageBox L 李四 L 姓名 其中 MessageBox 为 CWnd 的成员函数 其原型为 int MessageBox LPCTSTR lpszText LPCTSTR lpszCaption NULL UINT nType MB OK 其中的 nType 可取值 MB ABORTRETRYIGNORE 中止 重试 忽略 MB OK 确定 MB OKCANCEL 确定 取消 MB RETRYCANCEL 重试 取消 MB YESNO 同意 不同意 MB YESNOCANCEL 同意 不同意 取消 如果需要在非 CWnd 派生类的函数中显示消息框 可直接调用 SDK 的 MessageBox 函 数 MessageBox NULL L 数学 80 分 L 成绩 MB OK 或 MessageBox NULL L 李四 L 姓名 MB OK 其原型为 int MessageBox HWND hWnd handle of owner window LPCTSTR lpText address of text in message box LPCTSTR lpCaption address of title of message box UINT uType style of message box 也可以在 CWnd 派生类的函数中直接调用 SDK 函数 方法是在函数前使用全局作用域决 定符 例如 MessageBox NULL L 李四 L 姓名 MB OK 6 弹出式浮动菜单 弹出式浮动菜单 弹出式浮动菜单是指按鼠标右键时弹出的浮动式菜单 创建和使用弹出式浮动菜单的 步骤如下 添加空菜单 在项目工作区资源视图页中资源列表的 Menu 项上按鼠标右键 在弹出菜单中 选 插入 Menu 菜单项 或选 编辑 添加资源 菜单项 在弹出的 添加资源 对话框的 资源类型 栏的列表中 选中 Menu 项后 按右边最上面的 新建 钮 VS 就会自动添加一个 ID 为 IDR MENU1 的空菜单 并打开菜单编辑器窗口和对应 的属性窗口 修改菜单 ID 在右边的 菜单节点 属性窗口的 ID 栏中修改 ID 符号常量 如 IDR POPUPMENU 编辑菜单 在菜单编辑器窗口中 键入顶层菜单 弹出式浮动菜单的 菜单名 然 后再加入其他菜单项 例如 本例中的菜单名为 编辑 menu LoadMenu IDR POPUPMENU menu GetSubMenu 0 TrackPopupMenu TPM LEFTALIGN TPM RIGHTBUTTON point x point y this 则在应用程序的客户区中按鼠标右键 就会弹出浮动菜单 参见下图 其中 CMenu 类中弹出浮动式菜单的成员函数之原型为 BOOL TrackPopupMenu UINT nFlags int x int y CWnd pWnd LPCRECT lpRect 0 返回值 成功时返回 true 参数 nFlags 取值 对齐方式 TPM CENTERALIGN 菜单与 x 水平中对齐 TPM LEFTALIGN 菜单的左边框与 x 对齐 TPM RIGHTALIGN 菜单的右边框与 x 对齐 TPM LEFTBUTTON 使菜单跟踪左鼠标键 TPM RIGHTBUTTON 使菜单跟踪右鼠标键 参数 x y 为单击鼠标右键时 其光标的屏幕坐标 7 动态修改菜单 动态修改菜单 若只是正常使用菜单 按上面的操作即可 而且也用不上 CMenu 类 但如果需要动态 修改菜单 如添加选中记号 灰化菜单项 增加 删除菜单项等 则必须编写更多更复杂 的代码 还要用 CMenu 类 1 获得菜单对象 菜单对象属于主框架窗口 可用 GetMenu 函数获得 临时的 不能保存供以后使用 若想在视图类中获得菜单对象 则必须先得到主框架窗口的指针 这可以使用 CWnd 类的 GetTopLevelFrame 成员函数 CFrameWnd pFrmWnd GetTopLevelFrame CMenu pMenu pFrmWnd GetMenu CMenu pSubMenu4 pMenu GetSubMenu 3 其中 0 菜单条中的第 1 个下拉式菜单 1 第 2 个 余此类推 2 加 去选中记号 可使用 CMenu 类的成员函数 CheckMenuItem 来为菜单项加 去选中记号 Checked UINT CheckMenuItem UINT nIDCheckItem UINT nCheck 其中 参数 nCheck 可取值有两组 两组值之间可以用 或 操作 来组合 MF CHECKED 或 MF UNCHECKED 已选中或未选中 MF BYCOMMAND 或 MF BYPOSITION 参数 nIDCheckItem 为 ID 缺省 或 位置序数 参数 nIDCheckItem 的取值可为菜单项的 ID 缺省 或其位置序数 从 0 开始 返回值 为调用此函数时菜单项的选中状态 可为 MF CHECKED MF UNCHECKED 若指定的菜单项不存在 则返回 0 xFFFFFFFF 1 例如 CheckMenuItem 0 MF UNCHECKED MF BYPOSITION 在本例中 姓名 张三 菜单项被选中一次 pSubMenu4 CheckMenuItem ID NAME ZS MF CHECKED 说明 但是 在 MFC 编程中 提倡用只在菜单项 ID 的用户界面更新消息 UPDATE COMMAND UI 的消息响应员函数中进行加 去选中记号的设置 参见下面的 7 而且只有在该响应函数中设置的选中与否 才同时对菜单项和其所对应的工具条按钮同 时有效 例如 void CStudentView OnUpdateNameZs CCmdUI pCmdUI pCmdUI Enable FALSE pCmdUI SetCheck TRUE 3 灰化 禁止 激活菜单项 可用 CMenu 的成员函数 UINT EnableMenuItem UINT nIDEnableItem UINT nEnable 来灰化 禁止 激活菜单项 其中 参数 nEnable 可取值 MF DISABLED MF ENABLED 或 MF GRAYED 及与 2 中类似的参数 MF BYCOMMAND 或 MF BYPOSITION 参数 nIDEnableItem 的含义与取值同 2 中的 返回值 为调用此函数时菜单项的激活状态 可为 MF DISABLED MF ENABLED 或 MF GRAYED 若指定的菜单项不存在 则 返回 0 xFFFFFFFF 1 例如 pSubMenu4 EnableMenuItem ID NAME ZS MF DISABLED 但是上面的代码在 MFC 应用程序程序中不起任何作用 为了能够在 MFC 程序中动态 灰化 禁止 激活菜单项 必须响应 Windows 系统在菜单项显示之前发送的 用户界面更 新消息 UPDATE COMMAND UI 并用该消息处理函数的输入参数 CCmdUI 类的成员 函数来设置灰化 禁止 激活菜单项 详细信息 参见下面的 7 例如 void CStudentView OnUpdateNameLs CCmdUI pCmdUI pCmdUI Enable FALSE pCmdUI SetCheck TRUE 4 添加菜单 为了动态添加菜单或菜单项 可以使用 CMenu 类的成员函数 BOOL AppendMenu UINT nFlags UINT nIDNewItem 0 LPCTSTR lpszNewItem NULL 在菜单末尾添加 或使用另一成员函数 BOOL InsertMenu UINT nPosition UINT nFlags UINT nIDNewItem 0 LPCTSTR lpszNewItem NULL 在指定菜单 项 的前面插入 例如 在本例的 添加 菜单项的消息响应函数中为姓名菜单添加新的学生姓名菜单 项 陈六 void CStudentView OnAdd CFrameWnd pFrmWnd GetTopLevelFrame CMenu pMenu pFrmWnd GetMenu CMenu pSubMenu4 pMenu GetSubMenu 3 pSubMenu4 AppendMenu MF STRING MF ENABLED ID NAME NEW1 L 陈六 如果想添加多个菜单项 例如 赵七 在构造函数中将它初始化为 0 在每次添加菜单项 后将其加 1 在每次删除菜单项后将其减 1 将上述 pSubMenu4 AppendMenu 语句 改为 if m iAddNum 0 pSubMenu4 AppendMenu MF STRING MF ENABLED ID NAME NEW1 L 陈六 else if m iAddNum 1 pSubMenu4 AppendMenu MF STRING MF ENABLED ID NAME NEW2 L 赵七 m iAddNum 或 switch m iAddNum case 0 case 1 case 2 m iAddNum 另外 为了新加的菜单项能用 必须在编程阶段先完成下列工作 建立一个菜单项名为空格的菜单项 设置好 ID 如 ID NAME NEW1 创建好消息响应函数 将空格的菜单项删掉 以上过程也可用手工编码来代替 打开资源头文件 Resource h 定义符号常量 后面的整数必须与文件中其他符号常量 不同 define ID NAME NEW1 32901 define ID NAME NEW2 32902 打开视图类头文件 View h 在类定义中加入消息响应函数 红色的代码部分 AFX MSG CStudentView afx msg void OnNameZs afx msg void OnDel afx msg void OnNameNew1 afx msg void OnNameNew2 AFX MSG 打开视图类代码文件 View cpp 在文件前部的消息映射宏中加入消息映射 红色的代 码部分 BEGIN MESSAGE MAP CStudentView CView AFX MSG MAP CStudentView ON COMMAND ID NAME ZS OnNameZs ON COMMAND ID DEL OnDel ON COMMAND ID NAME NEW1 OnNameNew1 ON COMMAND ID NAME NEW2 OnNameNew2 AFX MSG MAP Standard printing commands ON COMMAND ID FILE PRINT CView OnFilePrint ON COMMAND ID FILE PRINT DIRECT CView OnFilePrint ON COMMAND ID FILE PRINT PREVIEW CView OnFilePrintPreview END MESSAGE MAP 视图类代码文件 View cpp 的末尾 加上消息响应函数体 void CStudentView OnNameNew1 MessageBox L 陈六 L 姓名 void CStudentView OnNameNew2 MessageBox L 赵七 L 姓名 5 删除菜单 为了动态删除菜单或菜单项 可以使用 CMenu 类的 RemoveMenu 只从菜单中删除 不销毁资源句柄 或 DeleteMenu 既从菜单中删除 又销毁资源句柄 成员函数 BOOL RemoveMenu UINT nPosition UINT nFlags BOOL DeleteMenu UINT nPosition UINT nFlags 例如 在本例中对 删除 菜单项的响应函数中 删除新加的姓名菜单中的学生姓名 菜单项 void CStudentView OnDel CFrameWnd pFrmWnd GetTopLevelFrame CMenu pMenu pFrmWnd GetMenu CMenu pSubMenu4 pMenu GetSubMenu 3 pSubMenu4 RemoveMenu ID NAME NEW1 MF BYCOMMAND 对两个或多个新菜单项 与添加菜单项相对应 上面的语句 pSubMenu4 RemoveMenu ID NAME NEW1 MF BYCOMMAND 可以改为 if m iAddNum 1 pSubMenu4 RemoveMenu ID NAME NEW1 MF BYCOMMAND else if m iAddNum 2 pSubMenu4 RemoveMenu ID NAME NEW2 MF BYCOMMAND m iAddNum 或 假设新菜单项的整数 ID 整数是顺序且连续增加的 m iAddNum pSubMenu4 RemoveMenu ID NAME NEW1 m iAddNum MF BYCOMMAND 6 菜单项加图标 可在菜单项左边加上 与工具条上一样的 图标 所用的 CMenu 类的成员函数为 BOOL SetMenuItemBitmaps UINT nPosition UINT nFlags const CBitmap pBmpUnchecked const CBitmap pBmpChecked 其中 前两个参数的含义似 2 表示 ID 位置的值与种类 后两个参数要用到 CBitmap 类及 其构造函数和成员函数 BOOL LoadBitmap UINT nIDResource 编程步骤 创建位图资源 可以手工绘制位图 也可以导入现有位图 手工绘制位图 添加位图项 将项目区切换到 资源视图 页 选中资源列表中的位图项 Bitmap 本例中为 Student Student rc Bitmap 按鼠标右键 在弹出的浮动菜单中选 插入 Bitmap 项 则 VS 会 创建一个新的位图资源项 IDB BITMAPi 其中 i 1 2 并 打开位图编辑器供你编辑 参见下图 创建位图 修改位图 ID 在右边属性窗口的 ID 项中修改位图的 ID 如 IDB MATH 修改位图的大小 缺省位图为 48 48 像素宽 像素高 而菜单项 的位图要求是 12 11 可以在属性窗口中修改 Height 和 Width 属性 也可以直接拖动位图的边框来修改其大小 绘制图形 可以利用新增加的 图像 菜单 图像编辑器工具条和 位于属性窗口上部的 颜色窗口 在中部的图像编辑器窗口中绘 制位图 如 粘贴图像 也可以在其他地方抓拷一幅位图 粘贴到现在的空白位 图中 然后做适当的修改 导入现有位图 将项目区切换到 资源视图 页 在资源文件项 本例中为 Student Student rc 上按鼠标右键 在弹出的浮动菜单中选 添加资源 项 则会打开 添加资源 对话框 在该对话框的左边的 资源类型 栏中选 Bitmap 项 选右边的 导 入 按钮 在弹出的 导入 对话框中 选择想要位图文件 VS 会创建一个新的位图资源项 IDB BITMAPi 其中 i 1 2 并打开位图编辑器供你编辑 余下的内容同上面的 手工绘制位图 的 创建位图 部分 使用位图资源 创建位图对象 CBitmap CBitmap pBmp new CBitmap 装入位图资源 LoadBitmap pBmp LoadBitmap IDB MATH 设置菜单项的图标 调用 CMenu 类的成员函数 SetMenuItemBitmaps 来设置 菜单项的图标 pSubMenu5 SetMenuItemBitmaps ID SCORE MATH MF BYCOMMAND pBmp pBmp 例如 本例为了给 成绩 数学 菜单项添加图标 可以在视图窗口的初始化函数 OnInitialUpdate 或绘图函数 OnDraw 中写如下代码段 CFrameWnd pFrmWnd GetTopLevelFrame CMenu pMenu pFrmWnd GetMenu CMenu pSubMenu5 pMenu GetSubMenu 4 CBitmap pBmp new CBitmap pBmp LoadBitmap IDB MATH pSubMenu5 SetMenuItemBitmaps ID SCORE MATH MF BYCOMMAND pBmp pBmp pSubMenu5 SetMenuItemBitmaps 0 MF BYPOSITION pBmp pBmp 下面介绍为视图类添加初始化函数 OnInitialUpdate 的方法 在项目工作区类视图页中选中应用程序的视图类 如本例为 CStudentView 在属性窗口中按其工具条上的重写按钮 切换到重写页 滚动视图父类的通用函数列表 寻找到 OnInitialUpdate 函数项 单击该项的右栏 在出现的下拉式列表 选其唯一的选项 OnInitialUpdate 即可 下面是本例在该初始化函数中 为 成绩 数学 菜单项添加图标 void CStudentView OnInitialUpdate CView OnInitialUpdate TODO 在此添加专用代码和 或调用基类 将上面的红色代码部分放在这里 运行结果参见下图 另外 还可以覆盖 CMenu 类的虚拟成员函数 virtual void DrawItem LPDRAWITEMSTRUCT lpDrawItemStruct 完全由自己来绘制整个菜单项区域 难度大 除非特别需要 一般不自己画菜单项 7 用户界面更新消息处理 在 事件处理程序向导 对话框中 菜单项的消息有两种 命令消息 COMMAND 在用户选中该菜单命令时发送 用户界面更新消息 UPDATE COMMAND UI 在菜单项显示之前发送 可用对 COMMAND 消息响应类似的方法 用事件处理程序向导为菜单项添加对用户 界面更新消息的响应处理 如对 姓名 菜单的 李四 项 该消息响应的原型 消息映 射和函数体分别为 afx msg void OnUpdateNameLs CCmdUI pCmdUI ON UPDATE COMMAND UI ID NAME LS OnUpdateNameLs void CStudentView OnUpdateNameLs CCmdUI pCmdUI pCmdUI Enable FALSE pCmdUI SetCheck TRUE 函数体中的 2 个语句 分别是禁用和选中该菜单项 可见 省却了前面获得主框架窗 口 菜单和菜单项的麻烦 缺点是只能对本菜单项操作 独立的 CCmdUI 类的常用成 员函数有 virtual void Enable BOOL bOn TRUE 禁止 激活 virtual void SetCheck int nCheck 1 已选中 未选中 virtual void SetText LPCTSTR lpszText 设置菜单项文本串 8 菜单资源文本 菜单资源文本 在 VC 中也可以以文本方式 缺省为 资源编辑器 方式 打开资源文件 rc 来查 看源代码 做法有两种 方法 1 在项目区中选中 解决方案资源管理器 页 选中应用程序的 资源文件 rc 按鼠标右键 在探出的浮动菜单中 选 查看代码 菜单项即可 方法 2 在 打开文件 对话框中 选 打开 按钮右端的钮打开下拉式列表 选 中其中的 打开方式 W 项 在弹出的 打开方式 对话框中 选中 源代码 文本 编辑器 项 按 确 定 关闭对话框 参见下图 作为参考 下面给出应用程序向导和资源编辑器所生成的资源头文件 Resource h 和 菜单资源文本内容 位于文件 rc 中 0 资源头文件 Resource h VC 在资源头文件 Resource h 中定义各种 ID 符号常量 下面是 Student 程序的资源头 文件的内容 NO DEPENDENCIES Microsoft Visual C generated include file Used by Student rc define IDD ABOUTBOX100 define IDP OLE INIT FAILED100 define IDR MAINFRAME128 define IDR StudentTYPE129 define IDR POPUPMENU129 define IDB MATHBMP130 define ID NAME ZS32771 define ID NAME LS32772 define ID NAME WW32773 define ID SCORE MATH32774 define ID SCORE ENG32775 define ID SCORE COMP32776 define ID ADD32777 define ID DEL32778 define ID NAME NEW132779 define ID NAME NEW232780 Next default values for new objects ifdef APSTUDIO INVOKED ifndef APSTUDIO READONLY SYMBOLS define APS NEXT RESOURCE VALUE132 define APS NEXT COMMAND VALUE32806 define APS NEXT CONTROL VALUE1000 define APS NEXT SYMED VALUE101 endif endif 1 缺省主框架菜单 单文档界面 Student rc IDR MAINFRAME MENU BEGIN POPUP 文件 F BEGIN MENUITEM 新建 N tCtrl N ID FILE NEW MENUITEM 打开 O tCtrl O ID FILE OPEN MENUITEM 保存 S tCtrl S ID FILE SAVE MENUITEM 另存为 A ID FILE SAVE AS MENUITEM SEPARATOR MENUITEM 打印 P tCtrl P ID FILE PRINT MENUITEM 打印预览 V ID FILE PRINT PREVIEW MENUITEM 打印设置 R ID FILE PRINT SETUP MENUITEM SEPARATOR MENUITEM 最近的文件 ID FILE MRU FILE1 GRAYED MENUITEM SEPARATOR MENUITEM 退出 X ID APP EXIT END POPUP 编辑 E BEGIN MENUITEM 撤消 U tCtrl Z ID EDIT UNDO MENUITEM SEPARATOR MENUITEM 剪切 T tCtrl X ID EDIT CUT MENUITEM 复制 C tCtrl C ID EDIT COPY MENUITEM 粘贴 P tCtrl V ID EDIT PASTE END POPUP 视图 V BEGIN MENUITEM 工具栏 T ID VIEW TOOLBAR MENUITEM 状态栏 S ID VIEW STATUS BAR END POPUP 帮助 H BEGIN MENUITEM 关于 Student A ID APP ABOUT END END 多文档界面 Test rc IDR MAINFRAME MENU BEGIN POPUP 文件 F BEGIN MENUITEM 新建 N tCtrl N ID FILE NEW MENUITEM 打开 O tCtrl O ID FILE OPEN MENUITEM SEPARATOR MENUITEM 打印设置 R ID FILE PRINT SETUP MENUITEM SEPARATOR MENUITEM 最近的文件 ID FILE MRU FILE1 GRAYED MENUITEM SEPARATOR MENUITEM 关闭 C ID FILE CLOSE MENUITEM 退出 X ID APP EXIT END POPUP 视图 V BEGIN MENUITEM 工具栏 T ID VIEW TOOLBAR MENUITEM 状态栏 S ID VIEW STATUS BAR END POPUP 帮助 H BEGIN MENUITEM 关于 Test A ID APP ABOUT END END 2 缺省文档类型菜单 Test rc IDR TestTYPE MENU BEGIN POPUP 文件 F BEGIN MENUITEM 新建 N tCtrl N ID FILE NEW MENUITEM 打开 O tCtrl O ID FILE OPEN MENUITEM 关闭 C ID FILE CLOSE MENUITEM 保存 S tCtrl S ID FILE SAVE MENUITEM 另存为 A ID FILE SAVE AS MENUITEM SEPARATOR MENUITEM 打印 P tCtrl P ID FILE PRIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论