2.3 弹出式菜单
弹出式菜单是一种浮动式的菜单。它可以用户单击鼠标右键来激活,根据右键指针的位置,调整菜单的显示位置。
显示弹出式菜单可以使用PopupMenu方法。
形式:[<窗体名>.] PopupMenu<菜单名>[,Flags[,x[,y[,BoldCommand]]]]
其中,<窗体名>如若省略,将打开当前窗体的菜单。
● <菜单名>是必需项,是通过菜单编辑器设计出的菜单名称(Name)。
● Flags参数为一些常量数值的设置,包含位置及行为两个指定值。
位置常数:
0(默认):菜单的左上角位于 x
4:菜单上框中央角位于 x
8:菜单的右上角位于 x
行为常数:
0:菜单命令只接收右键单击
2:菜单命令可接收左、右键单击
数值计算程序常用菜单,有如下一种下拉菜单,如图2.8所示。
图2.8 数值计算程序常用的菜单
菜单栏中只有两个菜单标题:“文件(F)”和“项目(R)”,在标题“文件”中有两个菜单命令“打印计算(P)”和“退出(X)”,其快捷键分别为Ctrl+P和Ctrl+X,如图2.9所示。
图2.9 在标题“文件(F)”中有两个菜单命令
在标题“项目(R)”中只有一个菜单命令“项目计算(p)”,其快捷键为Ctrl+N,如图2.10所示。
图2.10 在标题“项目(R)”中只有一个菜单命令
以上这些都是通过Visual Basic的菜单编辑器来完成的,其具体操作如2.1节下拉式菜单中所介绍的进行,进行到最后菜单编辑器来完成的情况如图 2.11所示。
图2.11 菜单编辑器的完成情况
在已建立的如图2.8数值计算程序常用的菜单上,单击菜单命令,则在代码编辑窗口中出现如下事件过程名:Private Sub项目计算_Click( )。
End Sub
在这事件过程名中,即可编写任何数值计算程序,无疑这要比先前介绍的两种最简单的界面要好用。现在就在这事件过程名中,编写一个计算程序。
例2.1 用欧拉梁振动频率公式计算简支工字梁固有振动频率(如图2.12所示)
图2.12 梁的模态图
其为10号工字钢梁:钢的弹性模量E=187GPa,钢剪切模量为79GPa,钢密度ρ = 8.8g/cm3,10号工字钢绕x轴惯性矩ix = 245cm4,10号工字钢截面积amj = 14.345cm2。两工字钢梁的长度为5m。计算梁的前5阶固有振动频率。
利用菜单编辑器编制一个数值计算程序常用菜单的界面,并在此菜单下进行简支工字梁固有振动频率的计算程序。
简支梁的自由振动频率为
式中,j为正弦或余弦半波数(j=1,2,…);为梁长;E为弹性模量;I为惯性矩; 为体密度;A 为截面积。此式又称为欧拉梁振动频率公式。
梁固有频率的计算程序编制及其程序代码:
Private Sub 项目计算_Click() '用欧拉公式求梁前5阶固有频率2014.1.21 Dim ix As Single '显式声明变量q为单精度 ω = ω! '隐式声明变量ω为单精度 π = 3.1415926 la = 5 '梁长5m eml = 187 * 10 ^ 9 '钢弹性模量E=187GPa,换算到Pa gml = 79 * 10 ^ 9 '钢剪切模量79GPa,换算到Pa ix = 2.45 * 10 ^ -5 '10号工字钢绕x轴惯性矩245cm^4换算到 m^4 amj = 14.345 * 10 ^ -4 '10号工字钢截面积cm^2换算到m^2 ρ = 8.8 * 10 ^ -3 * 10 ^ 6 '钢体密度g/cm^3,g换算到kg/m^3 β = Sqr(eml * ix / (ρ * amj)) '影响系数 r = Sqr(ix / amj) '影响系数 k = 1 '截面梁修正系数 Print " 10号工字钢梁前5阶固有频率计算" Print " 梁长="; la Print For na1 = 1 To 5 j = na1 ω01 = ((j * π) / la) ^ 2 '欧拉公式的ω01 ω02 = Sqr((eml * ix) / (ρ * amj)) '欧拉公式的ω02 ω = ω01 * ω02 Print " 前"; j; " 阶固有频率ω="; ω; " rad/s" Next na1 End Sub Private Sub 退出_Click() End End Sub
单击菜单命令,在具有菜单界面的窗体上即出现该程序的计算结果,如图2.13所示。
图2.13 程序的计算结果