VB程序设计 第八章 界面设计.docx

上传人:b****7 文档编号:9729464 上传时间:2023-02-06 格式:DOCX 页数:75 大小:436.15KB
下载 相关 举报
VB程序设计 第八章 界面设计.docx_第1页
第1页 / 共75页
VB程序设计 第八章 界面设计.docx_第2页
第2页 / 共75页
VB程序设计 第八章 界面设计.docx_第3页
第3页 / 共75页
VB程序设计 第八章 界面设计.docx_第4页
第4页 / 共75页
VB程序设计 第八章 界面设计.docx_第5页
第5页 / 共75页
点击查看更多>>
下载资源
资源描述

VB程序设计 第八章 界面设计.docx

《VB程序设计 第八章 界面设计.docx》由会员分享,可在线阅读,更多相关《VB程序设计 第八章 界面设计.docx(75页珍藏版)》请在冰豆网上搜索。

VB程序设计 第八章 界面设计.docx

VB程序设计第八章界面设计

第八章界面设计

主要内容

●通用对话框控件(CommonDialog)

●菜单设计

●多重窗体和多文档界面

●工具栏和状态栏

●RichTextBox控件

●应用程序向导

●打印机输出

●剪贴板对象

8.1通用对话框(CommonDialog)

8.1.1通用对话框

将通用对话框添加到工具箱内的方法:

单击工程/部件

选定MicrosoftCommDialogControl6.0按确定打开通用对话框。

将CommonDialog控件添加到工具箱,在设计状态,CommonDialog控件以图标

的形式显示在窗体上,通用对话框控件默认名(Name)为CommonDialog1,控件大小不能改变,在程序运行时,控件本身被隐含。

通用对话框控件在Vb与windows动态链接库Commdlg.dll的例程之间提供了一个接口。

为了能用这个控件创建对话框,动态链接库Commdlg.dll必须在Windows的system目录下。

要在程序中显示通用对话框中的某个对话框,可以用语句:

通用对话框.action=属性值或者通用对话框.方法show

例如:

CommonDialog1.action=1

CommonDialog1.ShowOpen

作用都是打开通用对话框CommonDialog1的打开文件对话框。

通用对话框的Action属性和Show方法一览表

通用对话框的类型

Action属性值

方法Show

显示文件打开(Open)对话框

1

ShowOpen

显示另存为(SaveAs)对话框

2

ShowSave

显示颜色(Color)对话框

3

ShowColor

显示字体(Font)对话框

4

ShowFont

显示打印机(Printer)对话框

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

Command1.Caption="打开文件对话框"

EndIf

EndWith

Label1.Caption=CommonDialog1.FileName'显示选择的文件名(包括路径)

Label2.Caption=CommonDialog1.FileTitle'显示选择的文件名

ExitSub

nofile:

'错误处理程序

IfErr.Number=32755Then'单击了取消按钮

Label1.Caption="放弃操作"

Else

Label1.Caption="其它操作"

EndIf

EndSub

[补例8.1]简单的文本编辑程序,当按“打开”按钮,在“打开”对话框按“取消”按钮,显示有关信息。

[程序在myvb\vb8\blex8_1文件夹内]

PrivateSubCommand1_Click()

CommonDialog1.CancelError=False

OnErrorGoTohand‘为防止按对话框控件内的取消按钮而设

CommonDialog1.InitDir=App.Path'设定本工程所在目录为初始化目录

CommonDialog1.Filter="工程文件|*.vbp|文本文件|*.txt|窗体文件|*.frm"

CommonDialog1.FilterIndex=1

CommonDialog1.ShowOpen

'应设置文本框控件的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:

EndSub

 

8.1.4“颜色”对话框

“颜色”对话框如下图所示

属性

Color

返回或设置选定的颜色。

[例8.2]用命令按钮的Click事件打开“颜色”对话框。

[例8.2]在myvb\vb8\ex8_2\lbc8_2.vbp

PrivateSubCommand1_Click()

WithCommonDialog1

.CancelError=False'按对对话框中的取消按钮不警告

.ShowColor'打开颜色对话框

IfCheck1.Value=1ThenPicture1.BackColor=.Color'取颜色

IfCheck2.Value=1ThenLabel1.ForeColor=.Color

Text1.Text=""&.Color'显示颜色值

EndWith

EndSub

PrivateSubForm_Load()

Form2.Caption="使用颜色对话框示例"

Command1.Caption="打开颜色对话框"

Check1.Caption="背景色"

Check2.Caption="前景色"

Label1.FontSize=30

Label1.WordWrap=True

Label1.Caption="三人之行"+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

PrivateSubCommand1_Click()

CommonDialog1.Flags=cdlCFBothOr&H100'cdlCFEffects或&H100等效,这里只能用or

'CommonDialog1.Action=4和CommonDialog1.ShowFont等效

CommonDialog1.ShowFont

WithCommonDialog1

.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

EndWith

EndSub

PrivateSubForm_Load()

Form2.Caption="字体对话框示例"

Form2.Caption="字体对话框示例"

Text1.Text="滕王高阁临江渚,"&vbCrLf&"佩玉鸣鸾罢歌舞。

"&vbCrLf_

&"画栋朝飞南浦云,"&vbCrLf&"珠帘暮卷西山雨。

"&vbCrLf_

&"闲云潭影日悠悠,"&vbCrLf&"物换星移几度秋。

"&vbCrLf_

&"阁中帝子今何在?

"&vbCrLf&"槛外长江空自流。

"

Command1.Caption="打开字体对话框"

Option1.Caption="前景色"

Option2.Caption="背景色"

Option1.TabIndex=0

Text1.Locked=True

EndSub

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'用于保存文本框内的初始内容

PrivateSubCommand1_Click()

Dimi%,inputdataAsString

CommonDialog1.CancelError=False

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.FontName="宋体"'恢复原始值

Printer.FontSize=9

Printer.FontItalic=False

EndIf

IfOption2.ValueThen'打印选定的文本文件内容

CommonDialog1.ShowPrinter

CommonDialog1.InitDir=App.Path

CommonDialog1.Filter="工程文件|*.vbp|窗体文件|*.frm|文本文件|*.txt"

CommonDialog1.ShowOpen

Text1.Text=""

Fori=1ToCommonDialog1.Copies

OpenCommonDialog1.FileNameForInputAs#1

DoWhileNotEOF

(1)

LineInput#1,inputdata'读出的一行的内容,但不包括回车换行

Text1=Text1&inputdata&vbCrLf

Printer.Printinputdata

Loop

Close#1

Nexti

Printer.EndDoc

EndIf

ExitSub

hand:

EndSub

PrivateSubCommand2_Click()

End

EndSub

PrivateSubForm_Load()

Form2.Caption="打印对话框示例"

Text1.Text="将数据从打印机上打印出来,有两种不同的方式:

"+Chr(13)+Chr(10)_

&"1.直接将数据送打印机上;"+Chr(13)+Chr(10)&"2.先将打印数据送到窗体上面,然后"_

&"将窗体打印出来。

直接送打印机语法为:

"+Chr(13)+Chr(10)_

&"[Object.][Print[{Spc(n)|Tab(n)}][expressionlist]{;|,}]"+Chr(13)+Chr(10)_

&"VB用Printer对象来代表系统目前所安装的打印机,VB并不操心到底是哪一种打印机"_

&"或需要哪一种驱动程序,因为Windows系统已经包办了一切。

"+Chr(13)+Chr(10)_

&"打印机对象也有currenX和currentY两项属性,因此打印起点设置也非常容易。

"_

&"要换页打印可运行NewPage方法,要结束打印使用EndDoc方法。

"

string1=Text1.Text

Option1.Caption="打印文本框内容"

Option2.Caption="打印文本文件"

Command1.Caption="确定"

Frame1.Caption=""

Option1.Value=True'缺省选择打印文本框

Command2.TabIndex=0'缺省焦点

EndSub

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1