预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共64页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

菜单、对话框及多重窗体提出问题本章主要内容:两种菜单类型:下拉式菜单、弹出式菜单子 菜单1:菜单控件 菜单项(主菜单项或子菜单项)也称为菜单控件 菜单项具有其属性、事件、方法 通过“菜单编辑器”完成设计*CaptionCaptionChecked编辑区【例1】设计一个具有算术运算(+、-、×、/)及清除功能的菜单。从键盘上输入两个数,利用菜单命令求出它们和、差、积或商,并显示出来。编写程序代码【例2】设计菜单界面如下图所示,下拉菜单中的子菜单项用于对文本框设置字体、字号、文字颜色和效果。其中,效果菜单下的各菜单项具有复选功能,设运行初始时各项前面没有√符号,与文本框初始状态一致菜单编辑器设置如下:续上表:菜 单 列 表 区菜 单 列 表 区菜单项事件代码设计如下:“颜色”菜单下的各菜单项为独立的菜单控件,因此应分别在其单击事件过程中编写代码,各事件过程如下: PrivateSubCC1_Click() Text1.ForeColor=vbRed EndSub PrivateSubCC2_Click() Text1.ForeColor=vbGreen EndSub PrivateSubCC3_Click() Text1.ForeColor=vbBlue EndSub“效果”菜单下的各菜单项具有复选功能,每次单击时切换成另一种状态。因此要判断当前菜单项的Checked属性,各事件过程如下:PrivateSubDD3_Click()‘粗体 IfDD3.Checked=TrueThen Text1.FontBold=False DD3.Checked=False Else Text1.FontBold=True DD3.Checked=True EndIf EndSub PrivateSubDD4_Click()‘斜体 IfDD4.Checked=TrueThen Text1.FontItalic=False DD4.Checked=False Else Text1.FontItalic=True DD4.Checked=True EndIf EndSub2:方法PopupMenu的格式: [<窗体名>.]PopupMenu<菜单名>[,flags[,x[,y[,boldcommand]]]] flags—指定菜单的位置和行为,祥见P171表10-2、10-3 x—菜单的x坐标,缺省则为鼠标坐标 y—菜单的y坐标,缺省则为鼠标坐标 boldcommand—指定要显示为黑体的菜单项控件名称MouseDown事件: SubForm_MouseDown(ButtonAsInteger,ShiftAs Integer,XAsSingle,YAsSingle) (发生在窗体上的事件过程)返回一个整数,在Button参数指定的按钮被按下或者被释放的情况下,该整数相应于SHIFT,CTRL,和ALT键的状态。某键被按下使得一个二进制位被设置。shift参数是具有相应于SHIFT键(位0),CTRL键(位1),以及ALT键(位2)最少二进制位的一个位字段。这些位的值分别等于1,2,和4。【例3】在例2的基础上设计窗体和文本框的弹出式菜单,如下图所示:文本框的MouseDown事件代码设计如下: PrivateSubText1_MouseDown(ButtonAsInteger,Shift AsInteger,XAsSingle,YAsSingle) IfButton=2Then PopupMenuEE,0Or0 EndIf EndSub菜单项事件代码设计如下:窗体快捷菜单: PrivateSubFF1_Click() Form1.BackColor=vbRed‘红色背景 EndSub PrivateSubFF2_Click() Form1.BackColor=vbGreen‘绿色背景 EndSub PrivateSubFF3_Click() Form1.BackColor=Fcolor‘默认背景 EndSub常见错误及难点分析常见错误及难点分析在首次用Load语句将窗体(假定该窗体在内存中还没有创建)调人内存之时依次发生Initialize和Load事件。Initialize是在窗体创建时发生的事件。在窗体的整个生命周期中,Initialize事件只触发一次。用户可以将一个窗体装入内存或从内存中删除很多次,但窗体的建立只有一次。也就是说,在用Load语句将窗体装入内存时会触发Load事件,但并不一定触发Initialize事件 窗体的Activate事件仅当窗体成为活动窗口时才发生。 是一种特殊类型的窗体对象 主要用于用户和应用程序的交互 建立对话框的方法三种 使用预定义对话框,如函数InputBox、MsgBox 自定义对话框 使用Comm