第八章 界面设计 第 9 页 共 47 页
Text1.Text = string1
CommonDialog1.ShowPrinter '显示打印对话框
Printer.FontName = \隶书\'用18号斜体隶书打印文本框内容 Printer.FontSize = 18
Printer.FontItalic = True
For i = 1 To CommonDialog1.Copies Printer.Print Text1.Text Next i
Printer.EndDoc
Printer.FontName = \宋体\'恢复原始值 Printer.FontSize = 9
Printer.FontItalic = False
End If
If Option2.Value Then '打印选定的文本文件内容
CommonDialog1.ShowPrinter
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = \工程文件|*.vbp|窗体文件|*.frm|文本文件|*.txt\
CommonDialog1.ShowOpen
Text1.Text = \
For i = 1 To CommonDialog1.Copies
Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1)
Line Input #1, inputdata '读出的一行的内容,但不包括回车换行 Text1 = Text1 & inputdata & vbCrLf
Printer.Print inputdata Loop
Close #1 Next i
Printer.EndDoc End If Exit Sub hand: End Sub
Private Sub Command2_Click() End End Sub
Private Sub Form_Load()
Visual Basic6.0 第 页 共 47 页9
第八章 界面设计 第 10 页 共 47 页
Form2.Caption = \打印对话框示例\
Text1.Text = \将数据从打印机上打印出来,有两种不同的方式:\ & \1.直接将数据送打印机上;\ 2.先将打印数据送到窗体上面,然后\ & \将窗体打印出来。直接送打印机语法为:\
& \ & \用Printer对象来代表系统目前所安装的打印机,VB并不操心到底是哪一种打印机\ & \或需要哪一种驱动程序,因为Windows系统已经包办了一切。\ & \打印机对象也有currenX和currentY两项属性,因此打印起点设置也非常容易。\ & \要换页打印可运行NewPage方法,要结束打印使用EndDoc方法。\ string1 = Text1.Text
Option1.Caption = \打印文本框内容\ Option2.Caption = \打印文本文件\ Command1.Caption = \确定\ Frame1.Caption = \
Option1.Value = True '缺省选择打印文本框 Command2.TabIndex = 0 '缺省焦点 End Sub
8.1.7 “帮助”对话框
“帮助”对话框可用来制作应用程序的联机帮助。帮助对话框本身不能建立应用程序的帮助文件,只能将已经建立好的帮助文件从磁盘中取出来并与界面连结起来,达到显示并检索帮助信息的目的。
创建帮助文件需要用其它的工具制作,如Microsoft Windows Help Compiler。
帮助对话框的主要属性
(1) HelpCommand:在线Help帮助类型
(2) HelpFile: Help文件的路径及其名称
(3) HelpKey: 在帮助窗口显示由该帮助关键字指定的帮助信息。 (4) HelpContext: 返回或设置所需要的HelpTopic的ContextID,一般与HelpCommand
属性(设置为vbHelpContexts)一起使用,指定要显示的HelpTopic。
[例8.5] 编写一个应用程序,在运行期间,当“单击纪事本帮助”按钮时,调用NotePad.hlp文件,首先进入“创建页眉、页脚”帮助信息页面。
[例8.5]在myvb\\vb8\\ex8_5\\lbc8_5.vbp
8.2 菜单设计
菜单的组成形式:
主菜单栏(顶层菜单)→ 主菜单名(只能有热键。使用 Alt+字母)
菜单项 → 可有快捷键(如:Ctrl+P)和(或) 热键(如:C 只按字母)也成为访问键(Access Key)
子菜单名→ 子菜单标记( ?)
Visual Basic6.0 第 页 共 47 页 10
第八章 界面设计 第 11 页 共 47 页
分割线(菜单标题仅使用一个“-”) 8.2.1菜单编辑器的使用
打开菜单编辑器的方法:单击工具菜单再单击菜单编辑器或直接按快捷键
(CTRL+E),或单击工具栏上的菜单编辑器图标,窗体上立即出现菜单编辑器对话框。
菜单编辑器对话框形式如下:
菜单编辑器对话框有菜单项属性区(称为数据区)、操作按钮区(称为编辑区)和菜单列表区(称为菜单项显示区)。上半部(数据区、编辑区)由用户设定,下半部显示设计的层次结构,左右上下箭头用于调整层次结构,其余按钮功能见名知义。所有菜单仅支持单击(Click)事件。 1.创建菜单项
(1)在标题栏输入该菜单项的文本。(对应属性为Caption),该文本就是在应用程序菜单上出现的名字,如要加热键则在某字符前面加 &。 (2)在名称栏输入程序中要引用该菜单项的名称。(对应属性为Name ),这个属性不会在屏幕上出现。
(3)单击下一个按钮或插入按钮,建立下一个菜单。
(4)复选(Checked)框可使菜单项左边加上“√”(如选中复选框)标记; (5)有效(Enabled)检查框用于控制菜单是否可被选择使用(选中可以使用); (6)可见(Visible)检查框决定菜单项是否可见(选中可见); (7)操纵上下箭头按钮可调整菜单项在菜单列表框中的排列位置; (8)操纵左右箭头按钮可调整菜单项的层次;
(9)联级菜单项标题前比上一级菜单项多“??”标志。 单击确定按钮关闭菜单编辑器。
(10)索引(Index)设置动态菜单时使用。
(11)显示窗口列表(WindowList)选中该项能够自动在某菜单下(一般
在窗口菜单下)显示新增的窗口名称(在多文档界面中使用)。 2. 分割菜单项
Visual Basic6.0 第 页 共 47 页 11
第八章 界面设计 第 12 页 共 47 页
分割菜单项在应用程序菜单中显示一条水平分割线。建立时在标题栏中输入一个连字符“-”;分隔菜单项也应有名称。建立步骤同创建菜单项。
3. 热键与快捷键
可以为菜单定义热键和快捷键。热键是指能使用Alt键和菜单标题中的带下划线的字母来打开菜单(对顶层菜单而言),对于菜单项则直接按带下划线的字母执行
菜单命令。这个带下划线的字母称为热键字符。建立方法是在菜单标题的某个字符前加一个&符号;
快捷键是不需要打开菜单而是直接执行相应菜单项的操作。建立方法是在菜单编辑器的快捷键下拉列表框中选择一个键,则在菜单项标题的右边就会显示快捷键名称。顶
层菜单名没有快捷键只能有热键。
[例8.6] 参照Windows的纪事本,建立一个有菜单功能的文本编辑器。文本编辑器菜单结构如下所示: 标题 名称 快捷键 标题 名称 快捷键 文件 FileMenu 编辑 EditMenu ?.新建 FileNew Ctrl+N ?复制 EditCopy Ctrl+C ?打开 FileOpen Ctrl+O ?剪切 EditCut Ctrl+X ?保存 FileSave Ctrl+S ?粘贴 EditPase Ctrl+V ?另存为 FileSave As ?退出 FileExit [例8.6]在myvb\\vb8\\ex8_6\\lbc8_6.vbp
Dim st As String ‘定义一个窗体级变量
Private Sub EditCopy_Click() ‘单击复制菜单
st = Text1.SelText '将选中的内容存放到st变量中
EditCopy.Enabled = False '进行复制后,剪切和复制菜单无效 EditCut.Enabled = False
EditPaste.Enabled = True '粘贴菜单有效 End Sub
Private Sub EditCut_Click() ‘单击剪切菜单
st = Text1.SelText '将选中的内容存放到st变量中 Text1.SelText = \ '将选中的内容清除,实现了剪切 EditCopy.Enabled = False EditCut.Enabled = False EditPaste.Enabled = True End Sub
Private Sub EditPaste_Click() ‘单击粘贴菜单
Text1.Text = Left(Text1, Text1.SelStart) + st + Mid(Text1, Text1.SelStart + 1)
Visual Basic6.0 第 页 共 47 页 12