




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10菜单及对话框菜单及对话框都是Windows应用程序的常用部件。应用程序通过菜单为用户提供一组命令。对话框是应用程序与用户交互的主要途径。
第10章
菜单及对话框菜单设计键盘与鼠标事件对话框通用/自定义本章主要内容退出
窗体和大多数控件都能响应键盘和鼠标事件
10.1.1键盘事件
有三种事件处理键盘操作
1.KeyPress事件
2.KeyDown事件:用户按下键盘上某个键时触发此事件
3.KeyUp事件:用户按下键盘上某个键后释放时触发此事件
10.1
键盘与鼠标事件
Click、DblClick、MouseMove、MouseDown和MouseUp事件当移动鼠标时发生MouseMove事件当按下鼠标任意键时发生MouseDown事件,放开鼠标键时发生MouseUp事件后三种事件可以区分鼠标的左、右、中键与Shift、Ctrl、Alt键
PrivateSub对象名_鼠标事件(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
说明:(1)Button参数表示哪个鼠标键被按下或释放。用0,1,2位分别表示鼠标的左、右、中键,用1或0表示被按下或释放
(2)Shift参数表示当鼠标键被按下或释放时,Shift、Ctrl、Alt键的按下或释放状态。用0、1、2位表示Shift、Ctrl、Alt键
(3)X,Y表示鼠标指针的当前坐标位置
210位
······左键右键中键
10.1.2
鼠标事件MouseMove、MouseDown或MouseUp当单击鼠标左键时把按钮的位置移动到鼠标指针的位置,单击鼠标右键时把按钮的位置移动到窗体的左上角位置(即坐标原点)。以下程序将MouseDown事件与Move方法结合起来使用。
PrivateSubForm_MouseDown(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1Then'单击鼠标左键时
Command1.MoveX,Y'移动到鼠标指针的位置
ElseCommand1.Move0,0'移动到窗体的左上角
EndIfEndSub例10.1
实现命令按钮位置的移动例10.1
10.2菜单设计
应用程序通过菜单为用户提供一组命令菜单一般分为两种:下拉式菜单和弹出式菜单
10.2.1下拉式菜单
1.下拉式菜单的结构下拉式菜单基本结构包括:顶层菜单、菜单项和子菜单子菜单项子菜单提示符访问键快捷键分隔线复选标记菜单项顶层菜单例10.1c
10.2.2
菜单编辑器
设计菜单的工具——菜单编辑器菜单编辑器分为上、下两部分,上半部分用来设置属性,下半部分是菜单显示区,用来显示用户输入的菜单内容。
10.2.3菜单的Click事件除分隔线以外的所有菜单元素都能识别Click事件例10.5
编一程序,进行两个操作数的算术运算练习
设计步骤如下:
(1)创建应用程序的用户界面和设置对象属性菜单栏向用户提供功能选择,包括运算数的位数,运算符类型(加、减、乘)和退出程序菜单设计各个菜单项名称例10.5
(2)编写程序代码
OptionExplicit‘规定所有变量都要显式声明,见10.9.1节
Dimsel1AsInteger,sel2AsStringDimr1AsLong
PrivateSubForm_Load()sel1=0'位数标记
sel2=""'运算标记
Randomize
EndSubPrivateSubMnu11_Click()‘单击“一位数”菜单项
sel1=1'设置位数标记
EndSubPrivateSubMnu12_Click()‘单击“二位数”菜单项
sel1=10
EndSubPrivateSubMnu13_Click()‘单击“三位数”菜单项
sel1=100EndSubPrivateSubMnu21_Click()‘单击“加法”菜单项
sel2="+"'设置运算标记EndSubPrivateSubMnu22_Click()‘单击“减法”菜单项
sel2="-"EndSubPrivateSubMnu23_Click()‘单击“乘法”菜单项
sel2="*"EndSubPrivateSubCommand1_Click()
'"命题"按钮单击事件
DimaAsLong,bAsLongIfsel1=0Orsel2=""Then
MsgBox"先选择运算数的位数和运算类型"ExitSubEndIfa=sel1+Int(9*sel1*Rnd)‘根据指定位数,随机生成操作数
b=sel1+Int(9*sel1*Rnd)Text1.Text=Str(a)+sel2+Str(b)+“=”‘根据操作数及运算类型组成算式
SelectCasesel2‘根据运算类型,求运算结果r1Case"+"r1=a+bCase"-"r1=a-bCase"*"r1=a*bEndSelectText2.Text=""Text2.SetFocusEndSub菜单操作后Sel1指定位数
=1
一位数
=10
二位数
=100
三位数Sel2指定运算类型
=“+”加法
=“-”减法
=“*”乘法PrivateSubCommand2_Click()
'"答题"按钮单击事件
Dimr2AsLongIfText2.Text=""Then
MsgBox"请输入答案"ExitSubEndIfr2=Val(Text2.Text)'读取用户的答案
Ifr1=r2Then'判断答案
MsgBox"正确"Else
MsgBox"错误"EndIfEndSubPrivateSubMnu30_Click()‘“退出”菜单命令
EndEndSub
10.2.5
弹出式菜单
弹出式菜单又称为快捷菜单。可以根据右击鼠标时的位置弹出不同的菜单。使用VB提供的菜单编辑器,把某个菜单设置成隐藏。创建快捷菜单的步骤如下:
(1)使用菜单编辑器设计菜单
(2)设置顶层菜单项为不可见,即不选中菜单编辑器里的“可见”选项或在属性窗口中设定Visible属性为False(3)编写与弹出式菜单相关联的MouseUp(释放鼠标)事件过程。格式为:
[对象]PopupMenu
菜单名[,位置常数][,横坐标[,纵坐标]]]例10.6在例10.5的基础上,把“位数”菜单改为快捷菜单
(1)打开例10.8的应用程序,选定窗体,然后在菜单编辑器中将“位数”菜单标题的“可见”框中的“√”取消(即不选中)
(2)增加以下的MouseUp事件过程代码:
PrivateSubForm_MouseUp(ButtonAsInteger,_
ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=2Then‘检查是否右击,击左键为1
PopupMenumnu10
EndIf
EndSub
程序运行时,右击窗体空白处,即会弹出快捷菜单,如图10.12所示例10.6例10.5A
弹出式菜单10.3对话框
对话框(DialogBox)是应用程序与用户进行交互的主要途径。三种对话框:
(1)预定义对话框
使用函数InputBox和MsgBox来实现。
(2)通用对话框通用对话框是一种ActiveX控件,在使用之前,应选择“工程”菜单中的“部件”命令先将其添加到工具箱中
(选中“MicrosoftCommonDialogControl6.0”
)
利用通用对话框能够创建下列六种标准对话框(指定相应的参数,P233):
打开(Open),另存为(SaveAs),颜色(Color)
字体(Font),打印机(Printer),帮助(Help)(3)用户自定义对话框
建立一个窗体,把窗体设置成对话框特性(没有控制菜单框、最大化及最小化按钮,不能改变其大小,见表10.3)
在窗体上根据需要放置控件附录使用WebBrowser控件制作一个简易的Web浏览器在“部件”对话框的“控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班主任关于学习习惯的指导计划
- 生物学观察与记录技巧计划
- 药学部临床沟通能力提升计划
- 2025年地面瞄准设备、定位定向设备项目合作计划书
- 中国开源软件行业发展环境、市场运行格局及投资前景研究报告(2025版)
- 2025年微循环测试系统项目合作计划书
- 2025年动叶可调轴流电站用风机合作协议书
- 2025年磁共振成像装置合作协议书
- 2025年油气钻采服务合作协议书
- 珠宝行业商品质量免责合同
- 农产品质量安全及其检测技术课件
- 外科学绪论课件
- 2020年中国人身保险产品研究报告
- 安全生产目标责任制考核表
- 常见织带花链的排法和穿棕方法
- 《化工工程制图》完整教案
- 2023年广东省中考试卷(语数英物化史生等共11套)带答案解析
- DFX工艺设计方法介绍
- 洪恩识字识字卡(001-100)可直接打印剪裁
- 违反八项规定问题典型案例、法规依据和关注点
- J-STD-033D处理包装运输和使用湿度回流和过程敏感设备
评论
0/150
提交评论