




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章菜单和工具栏 10 1菜单设计10 2创建工具栏10 3Windows界面样式及创建SDI程序界面10 4创建MDI程序界面 10 1菜单设计 10 1 1菜单组成10 1 2菜单编辑器10 1 3下拉菜单的设计10 1 4弹出式菜单10 1 5菜单控件数组 返回目录 10 1 1菜单组成 在Windows环境下 菜单分为下拉式菜单和弹出式菜单 下拉式菜单的菜单条显示在窗体标题栏的下面 它含有一个或者多个菜单标题 当单击某一菜单标题时 将打开一个含有菜单项的列表 菜单项也可以是子菜单标题 当单击子菜单标题时 将显示其下的子菜单项 分隔条用于将菜单项按功能分组 弹出式菜单又称为 上下文菜单 或 快捷菜单 是一种可以显示在窗体任何位置并独立于菜单栏的浮动式菜单 一般通过在某一区域单击鼠标右键的方式激活特定的弹出式菜单 鼠标单击的区域不同 弹出的菜单内容一般也不同 10 1 2菜单编辑器 可以通过以下几种方式启动菜单编辑器 1 执行 工具 菜单中的 菜单编辑器 命令 2 单击工具栏中的 菜单编辑器 按钮 3 在要建立菜单的窗体空白处右击鼠标 在快捷菜单中选择 菜单编辑器 命令 10 1 2菜单编辑器 10 1 2菜单编辑器 1 菜单控件区菜单控件区用来设置菜单控件的属性 1 标题 设置菜单控件的Caption属性 其值是显示在菜单中的文本 如果要在菜单中加入一条分隔线 则只需输入减号 即可 如果要为菜单控件指定访问键 则在作为访问键的字符前面加一个 字符 程序运行时该字符下端会出现下划线 使用Alt 字符即可打开菜单或执行相应的菜单命令 2 名称 设置菜单控件的Name属性 在程序代码中用于访问该菜单控件 建议使用mnu作为前缀来标识是菜单控件 3 索引 设置菜单控件数组中各元素的下标 10 1 2菜单编辑器 4 快捷键 设置快捷访问键 使用户在不打开菜单的情况下就可以通过键盘操作实现同样的功能 5 复选 设置菜单控件的Checked属性 决定是否在菜单控件前面出现复选标记 以便表示菜单控件的开 关状态 6 有效 设置菜单控件的Enabled属性 决定菜单控件是否可用 如果清除 有效 复选框 则Enabled属性值为False 此时相应的菜单控件将变成无效 以灰色显示 它既不能响应Click事件 也无法用快捷键访问 如果某一菜单标题无效 则其下的所有菜单项都将无效 10 1 2菜单编辑器 7 可见 设置菜单控件的Visible属性 决定菜单控件是否可见 如果清除 可见 复选框 则Visible属性值为False 该菜单控件不可见 当菜单控件不可见时 菜单中的其余控件会上移以填补空出的位置 如果控件位于菜单条上 则菜单条上其余的控件会左移以填补相应的空间 菜单控件不可见时 还会导致其无效 如果菜单标题不可见 则其下的所有菜单项均无效 10 1 2菜单编辑器 2 菜单项显示区菜单项显示区列有当前窗体的所有菜单控件 并通过它们所在的位置显示出对应的层次关系 可通过鼠标单击选中某个菜单控件 此时上端的菜单控件区显示的即为该菜单控件的对应属性 1 位于列表框中与左侧边框平齐的菜单控件将作为菜单标题显示在菜单条中 2 前面有一个内缩符号 的菜单控件是前导菜单标题的菜单项 3 前面有二个内缩符号 的菜单控件是前导菜单项的子菜单项 前导菜单项又称为子菜单标题 依此类推 10 1 2菜单编辑器 3 编辑区编辑区用来对当前选中的菜单控件进行编辑 1 取消或产生内缩符号 从而改变菜单控件在菜单中的层次级别 2 改变菜单控件在菜单中的位置 3 下一个 选中当前菜单控件的下一个菜单控件 4 插入 在当前菜单控件的上方加入一个新的菜单控件 5 删除 删除当前选中的菜单控件 10 1 3下拉菜单的设计 例10 1 1 设计一个具有算术运算 及清除功能的菜单 通过键盘输入两个数 利用菜单命令计算出它们的和 差 积 商 并显示出来 要求每个菜单命令都有对应的快捷键 1 设计用户界面 2 菜单设计 根据题意 建立两个菜单标题 分别完成设置和计算功能 设置 菜单中含有清除和退出两个菜单项 计算 菜单中含有加法 减法 乘法和除法四个菜单项 PrivateSubcheng Click Label1 Caption cheng CaptionText3 Text Val Text1 Text Val Text2 Text EndSubPrivateSubchu Click Label1 Caption chu CaptionText3 Text Val Text1 Text Val Text2 Text EndSubPrivateSubjia Click Label1 Caption jia CaptionText3 Text Val Text1 Text Val Text2 Text EndSubPrivateSubjian Click Label1 Caption jian CaptionText3 Text Val Text1 Text Val Text2 Text EndSub 10 1 3下拉菜单的设计 3 编写Click事件过程 如果希望单击某个菜单项就可以执行对应的操作 需要编写菜单控件的Click事件过程 这是除分隔条以外其它菜单控件唯一可以识别的动作 当用户单击菜单标题时 通常是将其下的菜单项显示出来 所以可以不必为菜单标题的Click事件过程编写代码 首先 关闭菜单编辑器 在窗体上显示所创建的菜单 从窗体上选择一个菜单控件 将在代码编辑器中显示相应的Click事件过程 等待输入程序代码 10 1 4弹出式菜单 弹出式菜单可以根据单击鼠标右键时的位置灵活改变弹出的菜单内容 使用户操作更快捷 所以弹出式菜单又称为快捷菜单 任何至少有一个菜单项的菜单 都可以在运行时作为弹出式菜单来显示 弹出式菜单的设计也是使用菜单编辑器 如果弹出式菜单不需要显示在菜单条中 则需要将顶级菜单项设置成隐藏 创建弹出式菜单的步骤如下 1 使用菜单编辑器设计菜单 2 设置顶层菜单项为隐藏 即不选中菜单编辑器里的 可见 选项 创建弹出式菜单 创建弹出式菜单 按Ctrl E键 弹出菜单编辑器 在那里面可以编辑菜单 标题 等同于Command的Caption属性 就是用来显示菜单上的文字 名称 等同于Command的Nane属性 指定菜单的名称 索引 菜单数组的下标 复选 以复选框的样式显示菜单 有效 Enabled可见 Visible先输入菜单第一项的标题 文件 和名称 file 按你的要求 程序运行时不显示 那么就把它的 可见 勾上 再输入菜单第二项的标题 打开 和名称 open 因为它是在 文件 菜单的下一级 所以按一下 按钮 最后输入菜单第三项的标题 保存 和名称 save 不用按按 按钮 确定完成菜单的编辑 创建弹出式菜单 调出菜单 PrivateSubForm MouseDown ButtonAsInteger ShiftAsInteger XAsSingle YAsSingle IfButton 2ThenPopupMenufile 1为左键 2为右键PopupMenu 弹出菜单EndSub点击代码窗口中控件下拉列表 选择save或open可以对它们进行事件的编程 10 1 4弹出式菜单 3 编写与弹出式菜单相关联的MouseUp 释放鼠标 或MouseDown 按下鼠标 事件过程 其中必须使用PopupMenu方法 PopupMenu方法语法格式为 对象名 PopupMenu flags x y boldcommand 对象名 表示要显示弹出式菜单的窗体名称 默认为当前窗体 参数是要显示的弹出式菜单名称 参数flags定义弹出式菜单的位置 可指明位置常数与行为常数 位置常数和行为常数分别如表10 1 3和表10 1 4所示 如果要同时指定这两个常数 可用逻辑运算符or进行组合 如4or2 10 1 4弹出式菜单 4 参数x与y定义弹出式菜单相对于指定窗体的显示位置 若省略 则显示在鼠标指针的当前位置 5 参数boldcommand用于指定在弹出式菜单中要以粗体显示的菜单控件的名称 若省略 则菜单中没有以粗体显示的菜单控件 注意 显示弹出式菜单后 用户必须从菜单中进行选择或者取消菜单 否则调用Popupmenu方法后的代码不会执行 10 1 5菜单控件数组 与控件数组类似 菜单控件数组是指同一菜单上共享相同名字与事件过程的一个或者多个菜单项 菜单控件数组中的每个元素都由唯一的索引值来标识 索引值由Index属性确定 Index属性值可以从菜单编辑器的 索引 文本框来指定 当菜单控件数组的某个元素识别Click事件时 系统将其索引值作为参数传递给Click事件过程 Click事件过程根据传进来的索引值判断出选中的是哪一个菜单项 注意 菜单控件数组中的各个元素在菜单项显示区中必须是连续的 而且必须是在同一缩进级上 若含有分隔条 则它也要作为数组元素包含到菜单控件数组中 PrivateSubjs Click IndexAsInteger SelectCaseIndexCase1Label1 Caption js Index CaptionText3 Text Val Text1 Text Val Text2 Text Case2Label1 Caption js Index CaptionText3 Text Val Text1 Text Val Text2 Text Case3Label1 Caption js Index CaptionText3 Text Val Text1 Text Val Text2 Text Case4Label1 Caption js Index CaptionText3 Text Val Text1 Text Val Text2 Text EndSelectEndSub 10 2创建工具栏 10 2 1ImageList控件10 2 2ToolBar控件 返回目录 10 2 1ImageList控件 要在窗口中加入工具栏 需要用到ToolBar控件和ImageList控件 通常情况下 这两个控件并没有显示在工具箱中 需要用户手动将它们添加到工具箱中 方法如下 1 从 工程 菜单中选取 部件 命令 打开 部件 对话框 2 在 部件 对话框的 控件 选项卡中 选中 MicrosoftWindowsCommonControls6 0 使它前面的复选框中出现 如图10 2 1所示 3 单击 确定 按钮 此时一些常用控件就被加入到工具箱中 其中包括ToolBar控件和ImageList控件 10 2 1ImageList控件 ImageList控件用于存放需要在工具栏上显示的按钮图片 使用方法 1 在窗体中添加一个ImageList控件 其大小固定 运行时不可见 2 右击ImageList控件 选择 属性 打开 属性页 对话框 3 选择 图像 选项卡 单击 插入图片 按钮 逐个向ImageList控件中加入图片 如果需要删除多余的图片 选中后点击 删除图片 按钮 10 2 2ToolBar控件 使用ToolBar控件具体创建一个工具栏 首先在窗体中添加一个ToolBar控件 右击后选择 属性 打开 属性页 对话框 1 设置ToolBar控件的通用属性点击 通用 选项卡 将 图像列表 属性设置为前面已创建的ImageList控件 这样可以使用ImageList控件中的图片作为ToolBar控件上按钮的图标来使用 外观 决定了创建的工具栏是平面还是立体的效果 样式 控制工具栏上按钮的外观 其他属性可根据需要进行设置 10 2 2ToolBar控件 2 设置ToolBar控件中的按钮点击 按钮 选项卡 使用 插入按钮 和 删除按钮 可以增加或减少工具栏中的按钮 每个按钮需要使用ImageList控件中的哪个图片作为外观显示 在 图像 中进行设置 关键字 用于在程序代码中引用该按钮 10 2 2ToolBar控件 工具栏上按钮的类型包括六种 通过 样式 进行选择 1 0 tbrDefault 默认的按钮类型 2 1 tbrCheck 复选类型的按钮 同一组按钮可选中多项 如设置字体的加粗 倾斜 加下划线等 3 2 tbrButtonGroup 单选类型的按钮 同一组按钮只能选中一项 如设置段落的靠左 靠右 居中等对齐方式 4 3 tbrSeparator 分隔符类型的按钮 此时不必指定 图像 该类按钮会以一个分隔条的形式出现 5 4 tbrPlaceholder 作为占据空间的按钮 6 5 tbrDropdown 具有下拉菜单的按钮 下拉菜单中包括的内容可在对话框下端的 按钮菜单 区域进行详细设置 10 2 2ToolBar控件 3 在ToolBar控件中加入代码ToolBar控件最常用的是ButtonClick事件 该事件的格式如下 PrivateSubToolbar1 ButtonClick ByValButtonAsMSComctlLib Button 其中的Button对应程序运行时用户用鼠标单击的工具栏上的按钮 该按钮可用它的Button Key属性值 关键字 来表示 10 3Windows界面样式及创建SDI程序界面 10 3 1Windows界面样式10 3 2创建SDI程序界面 返回目录 10 3 1Windows界面样式 单文档界面 SDI 多文档界面 MDI 资源管理器界面 10 3 2创建SDI程序界面 1 新建一个VisualBasic工程新建一个VisualBasic工程 把它作为SDI应用程序的主界面 如果需要在程序启动时显示一个启动画面 那么需要另外添加一个窗体作为启动画面 有时 在程序的帮助菜单中 需要有一个 关于 的信息窗口 那么还要添加一个窗体 用来显示一些相应的信息 2 添加菜单菜单是用户和程序交互的主要工具 是应用程序中可以让用户发布的命令的集合 所以在一般的应用程序中都有菜单 在菜单中可以定义一些相应的命令来完成需要的操作 可以利用前面讲过的方法为程序添加菜单 创建SDI程序界面实例 2 Imagelist1控件 右键属性 插入图片 1 Ctrl E添加菜单项 插入图片路径C ProgramFiles MicrosoftVisualStudio Graphics bitmaps OFFCTLBR large colorC ProgramFiles MicrosoftVisualStudio Graphics bitmaps tlbr w95 创建SDI程序界面实例 3 添加toolbars控件 设置 通用 4 修改按钮选项卡 填写关键字 图像数字 创建SDI程序界面实例 5 添加StatusBar控件并修改StatusBar控件属性 10 3 2创建SDI程序界面 3 添加工具栏工具栏也是用户和程序交互的主要工具 由于它具有图形化的外观 比菜单更直观明了 操作简单 因此工具栏的使用更为普遍 在没有菜单栏的地方也可以放置工具栏 可利用前面讲过的方法为程序添加工具栏 如果程序中既有菜单 又有工具栏 应注意它们之间的对应关系 4 添加工作区域工作区域放置的是应用程序操作的对象 例如 可以放置一个文本框 来输入处理的文本 10 3 2创建SDI程序界面 5 添加状态栏在比较专业的程序中 一般都需要有状态栏 用来显示一些相关的程序状态信息 状态栏可使用状态条控件 StatusBar 来实现 该控件和ToolBar控件 ImageList控件一样 也是 MicrosoftWindowsCommonControls6 0 中的一个控件 6 编写代码界面设置完成以后 还要编写相关命令的代码 从而来实现应用程序的相关功能 通过以上这些操作 便建立了一个简单的SDI程序界面 10 4创建MDI程序界面 10 4 1MDI窗体与MDI子窗体10 4 2创建MDI应用程序 返回目录 10 4 1MDI窗体与MDI子窗体 在MDI应用程序中 可以同时显示多个文档 每个文档显示在自己的窗口中 文档窗口包含在父窗口内 父窗口为应用程序中所有的文档子窗口提供操作的空间 可见 一个MDI应用程序可以包含三类窗体 即普通窗体 标准窗体 MDI父窗体和MDI子窗体 一个应用程序当然可以包含许多相似或者不同样式的MDI子窗体 在设计阶段 子窗体是独立的 并不被限制在MDI父窗体的区域内 可以在子窗体上增加控件 设置属性 编写代码 也就是说 设计阶段的MDI子窗体和标准窗体没有区别 10 4 1MDI窗体与MDI子窗体 那么 又怎样确定一个窗体是否为子窗体呢 如果一个窗体的MDIChild属性被设置为True 那么该窗体就是子窗体 另外 在工程资源管理器的窗口中MDI窗体 MDI子窗体和标准窗体使用不同的图标来显示 创建MDI应用程序实例 1 创建MDI父窗体 2 创建MDI子窗体 创建一个标准窗体 修改窗体属性MDIchild true 创建MDI应用程序实例 3 修改MDI父窗体为启动窗体 工程 属性 通用 启动 4 完成窗体菜单 按钮的添加 添加如下代码 PrivateSubMDIForm Load Form2 ShowForm3 ShowForm4 ShowEndSub 10 4 2创建MDI应用程序 创建MDI应用程序 首先要创建MDI父窗体及其子窗体 然后再对它们进行必要的设置 1 创建MDI父窗体MDI父窗体是MDI应用程序的前提和基础 从 工程 菜单中选取 添加MDI窗体 命令 这时 屏幕上就会出现一个新窗体 该窗体的标题是 MDIForm1 它就是新建的MDI父窗体 需要注意的是 一个应用程序只能有一个MDI窗体 如果工程中已经有了一个MDI窗体 那么 工程 菜单中的 添加MDI窗体 的命令就不可用 10 4 2创建MDI应用程序 2 创建MDI子窗体执行 添加窗体 命令会新建一个标准窗体 这时候 在该窗体的属性窗口中找到MDIChild属性 并把它的值由False改为True 则该窗体即成为MDI父窗体的一个子窗体 子窗体上的操作和标准窗体的操作是一样的 3 将MDI父窗体设置为启动窗体从 工程 菜单中选取当前工程的属性命令 打开 通用 选项卡 从其 启动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阳泉市中石化2025秋招面试半结构化模拟题及答案市场营销与国际贸易岗
- 2025年胸痛中心考试题及答案
- 山东地区中石化2025秋招笔试模拟题含答案安全环保与HSE岗
- 漳州市中储粮2025秋招笔试粮食政策与企业文化50题速记
- 你的价值观测试题及答案
- 国家能源岳阳市2025秋招能源与动力工程类面试追问及参考回答
- 阳江市中储粮2025秋招面试半结构化模拟题30问及答案
- 2025年咨询决策考试题及答案
- 金融货币学考试题及答案
- 庆阳市中储粮2025秋招写作案例分析万能模板直接套用
- 垃圾消纳费合同协议
- 节前保密教育培训
- 中国人寿理赔申请书
- 2024年人教版四年级语文上册《第3单元9.古诗三首》教学课件
- 讲好中国故事英语演讲2-3分钟
- 介绍莫兰迪的课件
- DB32/T+4860-2024+电镀园区环境管理技术规范
- 室内安装标识标牌施工方案
- GB/T 17775-2024旅游景区质量等级划分
- 小学数学情境教学设计案例分析
- 《福建省整体装配式卫浴间标准设计图集》
评论
0/150
提交评论