第 7章 菜单和控件
人民邮电出版社
21世纪高等学校计算机基础教育系列教材菜单和控件常用控件
1,文本框
2,标签
3,命令按钮
4,列表框
5,下拉列表框
6,时钟控件
7,通用对话框控件方法 所显示的对话框 Action值
ShowOpen 显示,打开,对话框 1
ShowSave 显示,另存为,对话框 2
ShowColor 显示,颜色,对话框 3
ShowFont 显示,字体,对话框 4
ShowPrinter 显示,打印,或,打印选项,
对话框
5
ShowHelp 调用 Windows 帮助引擎 6
菜单和控件菜单和控件一个简单的关于通用对话框的使用的界面,
其中的七个按钮分别完成不同的工作。
程序代码见下页 设计界面菜单和控件
Const HelpCNT = &HB
Private Sub Command1_Click(Index As
Integer)
Select Case Index
Case 1
Cd1.CancelError = True
On Error GoTo ErrHandler1
Cd1.Flags = cdlOFNHideReadOnly
Cd1.Filter = "All Files (*.*)|*.*|Text Files"
"(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
Cd1.FilterIndex = 2
Cd1.ShowOpen
MsgBox Cd1.FileName
Text1.Text = Cd1.FileName
ErrHandler1:
Case 2
Cd1.CancelError = True
On Error GoTo ErrHandler2
Cd1.Flags = cdlOFNHideReadOnly
Cd1.Filter = "All Files (*.*)|*.*|Text
Files" & _
"(*.txt)|*.txt|Batch Files
(*.bat)|*.bat"
Cd1.FilterIndex = 2
Cd1.ShowOpen
MsgBox Cd1.FileName
Text1.Text = Cd1.FileName
ErrHandler2:
菜单和控件
Cd1.Flags = cdlCCRGBInit
Cd1.Action = 3
text1.ForeColor = Cd1.Color
ErrHandler3:
Case 4
Cd1.CancelError = True
On Error GoTo ErrHandler4
Cd1.Flags = cdlCFEffects Or
cdlCFBoth
Cd1.ShowFont
Text1.Font.Name = Cd1.FontName
Text1.Font.Size = Cd1.FontSize
Text1.Font.Bold = Cd1.FontBold
Text1.Font.Italic = Cd1.FontItalic
Text1.Font.Underline =
Cd1.FontUnderline
Text1.FontStrikethru =
Cd1.FontStrikethru
Text1.ForeColor = Cd1.Color
ErrHandler4:
Case 5
Cd1.CancelError = True
On Error GoTo ErrHandler5
Cd1.ShowPrinter
BeginPage = Cd1.FromPage
菜单和控件
EndPage = Cd1.ToPage
NumCopies = Cd1.Copies
For i = 1 To NumCopies
Next i
ErrHandler5:
Case 6
With Cd1
.HelpFile = "vocus.hlp"
.HelpCommand = HelpCNT Or
cdlHelpSetContents
.ShowHelp
End With
Case 0
End
End Select
End Sub
菜单和控件用通用对话框设置后 Text1的字体和内容菜单和控件下拉式菜单下拉式菜单是一种典型的窗口式菜单,在屏幕上一个特定的矩形区域内,
下拉式菜单是在用鼠标左键单击其中的一个菜单项的时候,会自上而下在屏幕上下拉一个窗口菜单共用户选择或输入消息。在 Windows及各种软件中,下拉式菜单得到了广泛的应用。
下拉式菜单具有以下优点:
整体感强,一目了然,界面友好、直观,使用方便,易于学习和掌握;
具有导航功能,用户可以在菜单间自由方便地转换,使用相应的功能;
占用屏幕空间小,通常只占用屏幕的最上一行,在必要时下拉出一个子菜单。
弹出式菜单弹出式菜单是独立于菜单栏而显示在窗体上的浮动菜单。在弹出式菜单上显示的项目取决于按下鼠标右键时指针所处的位置;因而,弹出式菜单也被称为上下文菜单。在 Microsoft Windows 95 中,可以通过单击鼠标右键来激活上下文菜单。
创建菜单在 Visual Basic中,在程序设计期间可以创建菜单。用菜单编辑器创建菜单,打开菜单编辑器的方法有以下四种:
1.在设计状态下,打开窗体设计器,选择,工具,菜单下的,菜单编辑器,..”,打开菜单编辑器窗口。
2.用 ctrl + E打开菜单编辑器。
3.点击工具栏上的菜单编辑器快捷按钮 启动菜单编辑器。
4.在窗体上鼠标右键单击,选择弹出菜单中的“菜单编辑器”,
菜单和控件使用菜单下拉式菜单
1,菜单编辑器名称 类型 Caption或 text 可见 复选 Checked 其他
Form1 窗体 Form1 Yes - - -
Main 顶层菜单 文本格式 Yes No - -
Under 子菜单 下划线 Yes Yes False -
Bold 子菜单 粗体 Yes Yes False -
It 子菜单 斜体 Yes Yes False -
Exit 子菜单 退出 Yes No - -
Edit 顶层菜单 文本编辑 Yes No - -
Copy 子菜单 复制 Yes No - -
Paste 子菜单 粘贴 Yes No - -
Delete 子菜单 删除 Yes No - -
Help 顶层菜单 帮助 Yes No - -
About 子菜单 关于 Yes No - -
Label1 标签 字体 Yes - - -
Label2 标签 字号 Yes - - -
Text1 文本框 Yes Multiline=true scrollbars=2
Combo1 下拉列表框 Text1.fontname yes - - -
Combo2 下拉列表框 Text1.fontsize yes - - -
Private Sub about_Click() '关于菜单的单击事件
frmAbout.Show
End Sub
Private Sub Combo1_click() '设置字体为下拉列表框的文字
Text1.FontName = Combo1.Text
End Sub
Private Sub Combo2_Click() '设置字号为下拉列表框的文字
Text1.FontSize = Val(Combo2.Text)
End Sub
Private Sub copy_Click() '复制菜单
If Text1.SelLength > 0 Then
copy.Enabled = True
Clipboard.SetText (Text1.SelText)
End If
End Sub
Private Sub delete_Click() '删除菜单
Text1.SelText = ""
End Sub
Private Sub Form_Load()
Combo1.Text = Text1.FontName '取得当前字体
Combo2.Text = Text1.FontSize '取得当前字号
Combo1.AddItem "宋体 " '初始化字体
Combo1.AddItem "隶书 "
Combo1.AddItem "黑体 "
Combo1.AddItem "华文中宋 "
Combo1.AddItem "华文行楷 "
Combo2.AddItem "8" '初始化字号
Combo2.AddItem "9"
Combo2.AddItem "10"
Combo2.AddItem "12"
Combo2.AddItem "14"
Combo2.AddItem "16"
Combo2.AddItem "18"
Combo2.AddItem "20"
Combo2.AddItem,24”,Combo2.AddItem "28"
Combo2.AddItem,32,,Combo2.AddItem "36"
Combo2.AddItem "48"
it.Checked = False '初始化复选菜单
under.Checked = False
bold.Checked = False
End Sub
Private Sub it_Click() '斜体菜单代码
If it.Checked = True Then
it.Checked = False
Text1.FontItalic = False
Else
it.Checked = True
Text1.FontItalic = True
End If
End Sub
Private Sub paste_Click() '粘贴菜单代码
If Clipboard.GetText <> "" Then
Text1.SelText = Clipboard.GetText
End If
End Sub
Private Sub quit_Click() '退出
End
End Sub
Private Sub under_Click() '下划线
If under.Checked = True Then
under.Checked = True
Text1.FontUnderline = False
Else
under.Checked = True
Text1.FontUnderline = True
End If
End Sub
Private Sub bold_Click() '粗体
If bold.Checked = False Then
bold.Checked = True
Text1.FontBold = True
Else
bold.Checked = False
Text1.FontBold = False
End If
End Sub
弹出式菜单的设计在窗体上创建一个文本框,
名称为 text1,text值为 text1,
打开菜单编辑器,创建顶层菜单 main,标题为空,设置属性为不可见,创建子菜单
bold,标题为“粗体” it,
标题为“斜体”,under,
标题为“下划线”,si,标题为,20”,tt,标题为“隶书”,aa,标题为,-”,
qiut,标题为“退出”。如图所示,各菜单项的单击事件如下所示:
为了显示弹出式菜单,可使用 PopupMenu 方法。这个方法使用下列语法:
[object.]PopupMenu 菜单名 [,flags [,x [,y [,boldcommand ]]]]
直到菜单中被选取一项或者取消这个菜单时,调用 PopupMenu 方法后面的代码才会运行。因此,在窗体的 MouseDown事件中编写如下代码:
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,
Y As Single)
If Button = 2 Then
PopupMenu main
End If
End Sub
Private Sub it_Click()
Text1.FontItalic = True
End Sub
Private Sub quit_Click()
End
End Sub
Private Sub si_Click()
Text1.FontSize = 20
End Sub
Private Sub tt_Click()
Text1.Font = "隶书 "
End Sub
Private Sub under_Click()
Text1.FontUnderline = True
End Sub
Private Sub bold_Click()
Text1.FontBold = True
End Sub
特殊控件 Clipboard
在 Visual Basic中,用户可以直接访问 Windows的剪贴板。
剪贴板是 Windows系统在内存中开辟的一段存储空间,
用来临时存放复制或剪切下来的内容。下面通过实例来讲解剪贴板和文本框结合起来使用创建文字编辑器的方法。
使用 Windows Clipboard编写程序创建一个标准 EXE工程,在窗体上创建一个文本框控件,名称设为 Text1,ScrollBars设为 Both,MultiLine设为 True;然后创建菜单,菜单的内容如下:剪切,复制,粘贴,起始设为不可用。
分别写入如下代码:
Private Sub copys_Click()
Clipboard.SetText Text1.SelText
pastes.Enabled = True
End Sub
Private Sub cut_Click()
Clipboard.SetText Text1.SelText
Text1.SelText = ""
pastes.Enabled = True
End Sub
Private Sub pastes_Click()
Text1.SelText = Clipboard.GetText
End Sub
Private Sub Text1_MouseUp(Button As
Integer,Shift As Integer,X As Single,Y
As Single)
If Text1.SelLength <> 0 Then
copys.Enabled = True
cut.Enabled = True
Else
copys.Enabled = False
cut.Enabled = False
End If
End Sub