VB程序设计 第八章 界面设计文档格式.docx
《VB程序设计 第八章 界面设计文档格式.docx》由会员分享,可在线阅读,更多相关《VB程序设计 第八章 界面设计文档格式.docx(75页珍藏版)》请在冰豆网上搜索。
5
ShowPrinter
显示帮助(Help)对话框
6
ShowHelp
通用对话框具有的主要共同属性:
(1)DialogTiltle
通用话框的每个特定对话框都有默认的标题,DialogTiltle属性可以由用户自行设计对话框标题栏上显示的内容。
(2)CancelError
通用对换框有一个“取消”按钮,用于向应用程序表示用户想取消当前操作。
当CancelError属性为True时,选择“取消”按钮,通用对话框产生错误警告并自动将错误对象Err.Number置为32755(cdCancel)以便供程序判断;
当CancelError属性为False(缺省)时,则当击“取消”按钮,不产生错误警告。
(3)Flags
这个属性可修改每个具体的对话框的默认操作。
不同的对话框的Flags属性各不相同。
可以使用VB符号常量或一个整数(十进制或十六进制整数)给其赋值。
8.1.2“打开”文件对话框
“打开”文件对话框如下图所示:
打开“文件”对话框并不能真正“打开”文件,而仅仅用来选择一个文件,至于选择以后的处理包括打开、显示等,“打开”文件对话框本身是无能为力的。
属性
(1)FileName
该属性为字符串,用于设置和得到用户所选定的文件名(包括路径名)
(2)FileTitle
该属性设计时无效,在程序中为只读,用于返回文件名(不包含路径)
(3)Filter
该属性用于过滤文件类型,使文件列表框中只显示指定类型的文件。
制定的属性值将被加载在“打开”文件对话框的“文件类型”列表框中。
可以在设计时设置该属性,也可以在代码中设置该属性。
其格式为:
文件说明|文件类型(或称为描述符|过滤器)
过滤器由统配符和文件的扩展名组成。
例如:
Documents(*.DOC)|*.DOC|TextFiles(*.TXT)|*.txt|AllFiles|*.*
又例如:
图形文件|*.jpeg;
*.gif|图元文件|*.wmf;
*.emf|图标文件|*.ico;
*.cur|位图文件|*.bmp;
*.did
(4)FilterIndex
决定在文件类型列表框中默认显示第几组类型的文件。
当FilterIndex=1表示显示第一组类型的文件。
即例如中的*.DOC类文件。
对于例如中的*.doc,*.txt,*.*的FilterIndex依次为1,2,3。
如果FilterIndex>
3或为0(不能小于0,否则出错)都是显示第一组类型的文件即*.doc类型文件。
(5)InitDir
该属性用来指定打开对话框中的初始目录(表现在打开对话框的查找范围)。
若显示当前目录不需设置。
8.1.3“另存为”对话框
另存为对话框没有提供真正的存储文件操作,仍需要编程完成储存操作。
DefaultExt:
设置对话框默认文件类型即缺省扩展名。
[例8.1]用命令按钮的Click事件显示打开文件和另存为对话框。
[例8.1]在myvb\vb8\ex8_1\lbc8_1.vbp
dimopti%
PrivateSubCommand1_Click()
OnErrorGoTonofile'
设置错误陷阱,转移到指定的位置执行
WithCommonDialog1
.InitDir="
c:
\windows"
.Filter="
文本文件|*.txt|演示文稿|*.ppt|Word文档|*.doc"
.CancelError=True'
如果按下对话框的取消按钮,则将错误对象的number设置为32755
.FilterIndex=3'
在文件类型下拉列表框首先显示Word文档,(0、4、5、...组范围之外)和1文本文件,2演示文稿
Ifopti=0Then
.ShowOpen'
此句放在这里为宜,演示放在InitDir和Filter位置的结果
opti=1
Command1.Caption="
打开另存为对话框"
Else
.ShowSave
opti=0
打开文件对话框"
EndIf
EndWith
Label1.Caption=CommonDialog1.FileName'
显示选择的文件名(包括路径)
Label2.Caption=CommonDialog1.FileTitle'
显示选择的文件名
ExitSub
nofile:
'
错误处理程序
IfErr.Number=32755Then'
单击了取消按钮
Label1.Caption="
放弃操作"
其它操作"
EndSub
[补例8.1]简单的文本编辑程序,当按“打开”按钮,在“打开”对话框按“取消”按钮,显示有关信息。
[程序在myvb\vb8\blex8_1文件夹内]
CommonDialog1.CancelError=False
OnErrorGoTohand‘为防止按对话框控件内的取消按钮而设
CommonDialog1.InitDir=App.Path'
设定本工程所在目录为初始化目录
CommonDialog1.Filter="
工程文件|*.vbp|文本文件|*.txt|窗体文件|*.frm"
CommonDialog1.FilterIndex=1
'
应设置文本框控件的ScrollBars=both,MultiLine=True.这两个属性只能在设计时指定
OpenCommonDialog1.FileNameForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,inputdata
txtNoteEdit.Text=txtNoteEdit.Text+inputdata+_
Chr(13)+Chr(10)
Loop
Close#1
ExitSub
hand:
8.1.4“颜色”对话框
“颜色”对话框如下图所示
Color
返回或设置选定的颜色。
[例8.2]用命令按钮的Click事件打开“颜色”对话框。
[例8.2]在myvb\vb8\ex8_2\lbc8_2.vbp
.CancelError=False'
按对对话框中的取消按钮不警告
.ShowColor'
打开颜色对话框
IfCheck1.Value=1ThenPicture1.BackColor=.Color'
取颜色
IfCheck2.Value=1ThenLabel1.ForeColor=.Color
Text1.Text="
"
&
.Color'
显示颜色值
PrivateSubForm_Load()
Form2.Caption="
使用颜色对话框示例"
打开颜色对话框"
Check1.Caption="
背景色"
Check2.Caption="
前景色"
Label1.FontSize=30
Label1.WordWrap=True
三人之行"
+Chr(13)+Chr(10)_
必有我师"
EndSub
8.1.5“字体”对话框
“字体“对话框形式如下:
(1)Flags
必须设置,它通知通用对话框控件是否显示屏幕字体、打印机字体或两者都有。
如果没有设置则VB显示错误提示。
字体对话框Flags属性设置值一览表
常数
值(16进制)
说明
cdlCFScreenFonts
&
H1
屏幕字体
cdlCFPrinterFonts
H2
打印机字体
cdlCFBoth
H3
打印机字体和屏幕字体
cdlCFEffects
H100
显示删除线和下划线检查框以及颜色组合框
(2)Font
包括FontName、FontSize、FontBold、FontItalic、FontStrikethru、FontUnderline属性。
(3)Color
该属性值表示字体的颜色,要使用这个属性,必须使用Flag值为cdlCFEffects。
[例8.3]用字体对话框设置文本框的字体,要求在字体对话框内出现删除线、下划线、颜色元素控制。
[例8.3]在myvb\vb8\ex8_3\lbc8_3.vbp
CommonDialog1.Flags=cdlCFBothOr&
H100'
cdlCFEffects或&
H100等效,这里只能用or
CommonDialog1.Action=4和CommonDialog1.ShowFont等效
CommonDialog1.ShowFont
.Flags=cdlCFEffects
Text1.Font=.FontName
Text1.FontSize=.FontSize
Text1.FontBold=.FontBold
Text1.FontItalic=.FontItalic
Text1.FontStrikethru=.FontStrikethru
IfOption1.ValueThenText1.ForeColor=.Color
IfOption2.ValueThenText1.BackColor=.Color
字体对话框示例"
Text1.Text="
滕王高阁临江渚,"
vbCrLf&
佩玉鸣鸾罢歌舞。
"
vbCrLf_
画栋朝飞南浦云,"
珠帘暮卷西山雨。
闲云潭影日悠悠,"
物换星移几度秋。
阁中帝子今何在?
槛外长江空自流。
打开字体对话框"
Option1.Caption="
Option2.Caption="
Option1.TabIndex=0
Text1.Locked=True
8.1.6
“打印”对话框
“打印”对话框形式如图
“打印”对话框并不能处理打印工作,仅仅是一个供用户选择打印参数的界面,所选参数存于各个属性中,再用编程来处理打印操作。
FromPage:
起始页号
ToPage:
终止页号
要使用这两个属性,必须把对话框的Flags属性设置为2。
Copies:
打印份数,整型值。
如果把对话框的Flags属性设置为262144,则Copies属性值总是1。
hdc:
分配给打印机的句柄,用来识别对象的设备环境,用于api函数调用。
属性窗口不可见(只读属性)。
CommonDialog1.ShowPrinter
PrintCommonDialog1.hDC
如果打印驱动程序不支持多份打印,该属性有可能始终返回1。
[例8.4]打印文本框中的内容或一个文本文件。
[例8.4]在myvb\vb8\ex8_4\lbc8_4.vbp
OptionExplicit
Privatestring1AsString'
用于保存文本框内的初始内容
Dimi%,inputdataAsString
OnErrorGoTohand:
IfOption1.ValueThen'
打印文本框内容
Text1.Text=string1
CommonDialog1.ShowPrinter'
显示打印对话框
Printer.FontName="
隶书"
'
用18号斜体隶书打印文本框内容
Printer.FontSize=18
Printer.FontItalic=True
Fori=1ToCommonDialog1.Copies
Printer.PrintText1.Text
Nexti
Printer.EndDoc
宋体"
恢复原始值
Printer.FontSize=9
Printer.FontItalic=False
IfOption2.ValueThen'
打印选定的文本文件内容
CommonDialog1.ShowPrinter
CommonDialog1.InitDir=App.Path
工程文件|*.vbp|窗体文件|*.frm|文本文件|*.txt"
CommonDialog1.ShowOpen
LineInput#1,inputdata'
读出的一行的内容,但不包括回车换行
Text1=Text1&
inputdata&
vbCrLf
Printer.Printinputdata
PrivateSubCommand2_Click()
End
打印对话框示例"
将数据从打印机上打印出来,有两种不同的方式:
1.直接将数据送打印机上;
+Chr(13)+Chr(10)&
2.先将打印数据送到窗体上面,然后"
_
将窗体打印出来。
直接送打印机语法为:
[Object.][Print[{Spc(n)|Tab(n)}][expressionlist]{;
|,}]"
VB用Printer对象来代表系统目前所安装的打印机,VB并不操心到底是哪一种打印机"
或需要哪一种驱动程序,因为Windows系统已经包办了一切。
打印机对象也有currenX和currentY两项属性,因此打印起点设置也非常容易。
要换页打印可运行NewPage方法,要结束打印使用EndDoc方法。
string1=Text1.Text
打印文本框内容"
打印文本文件"
确定"
Frame1.Caption="
Option1.Value=True'
缺省选择打印文本框
Command2.TabIndex=0'
缺省焦点
8.1.7“帮助”对话框
“帮助”对话框可用来制作应用程序的联机帮助。
帮助对话框本身不能建立应用程序的帮助文件,只能将已经建立好的帮助文件从磁盘中取出来并与界面连结起来,达到显示并检索帮助信息的目的。
创建帮助文件需要用其它的工具制作,如MicrosoftWindowsHelpCompiler。
帮助对话框的主要属性
(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只按字母)也成为访问键(AccessKey)
子菜单名→子菜单标记()
分割线(菜单标题仅使用一个“-”)
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.分割菜单项
分割菜单项在应用程序菜单中显示一条水平分割线。
建立时在标题栏中输入一个连字符“-”;
分隔菜单项也应有名称。
建立步骤同创建菜单项。
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
…另存为
FileSaveAs
…退出
FileExit
[例8.6]在myvb\vb8\ex8_6\lbc8_6.vbp
DimstAsString‘定义一个窗体级变量
PrivateSubEditCopy_Click()‘单击复制菜单
st=Text1.SelText'
将选中的内容存放到st变量中
EditCopy.Enabled=False'
进行复制后,剪切和复制菜单无效
EditCut.Enabled=False
EditPa