VB程序设计 第八章 界面设计
第八章 界面设设 第 1 设 共 48 设
第八章 界面设设
主要容内
,通用设设控件;框CommonDialog,
,菜设设设
,多重和多文界面窗体档
,工具设和设设状
,RichTextBox控件
,设用程序向设
,打印机设出
,剪设板设象
8.1 通用设设框(CommonDialog)
8.1.1 通用设设框
将框内通用设设添加到工具箱的方法,
设设工程/部件
将CommonDialog设定Microsoft CommDialog Control 6.0 按定打设通用设设。确框
控件添加到工具箱~在设设设~状CommonDialog控件以设设的形式设示在上~通用设设窗体框控件默设名;Name,设CommonDialog1,控件大小不能改设~在程序行设~控件本身被设运含。
通用设设控件在框Vb与windows设设设接设Commdlg.dll的例程之设提供了一接口。设了能个用设控件设建设设~设设设接设个框Commdlg.dll必设在Windows的system目设下。
要在程序中设示通用设设中的某设设设~可以用设句框个框:通用设设框.action=性设或者通用属设设框.方法show
例如:
CommonDialog1.action=1
CommonDialog1.ShowOpen
作用都是打设通用设设框CommonDialog1的打设文件设设。框
通用设设的框Action性和属Show方法一设
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
通用设设的设型框Action属性设方法Show设示文件打设(Open) 设设框1ShowOpen设示存设另(Save As) 设设框2ShowSave设示设色(Color) 设设框3ShowColor设示字体(Font) 设设框4ShowFont设示打印机(Printer) 设设框5ShowPrinter设示助帮(Help) 设设框6ShowHelp通用设设具有的主要共同性框属,
(1) DialogTiltle
通用设的每特定设设都有默设的设设~框个框DialogTiltle性可以由用设自行设设设设设设设属框上设示的容。内
(2) CancelError
Visual Basic6.0 第 设 共 48 设1
第八章 界面设设 第 2 设 共 48 设
通用设设有一“取消”按设~用于向设用程序表示用设想取消前操作。框个当当
CancelError性设属True设~设设“取消”按设~通用设设设生设设警告自设设设框并将设象
Err.Number置设32755(cdCancel)以便供程序判~断
当CancelError性设属False(缺省) 设~设设“取消”按设~不设生设设警告。当
(3) Flags
设性可修改每具的设设的默设操作。不同的设设的个属个体框框Flags性各不相同。可以使属用VB符常量或一整;十设制或十六设制整,设其设设。号个数数
8.1.2 “打设”文件设设框
“打设”文件设设如下设所示,框
打设“文件”设设不能正“打设”文件~而设设用设设一文件~至于设设以后的设理框并真来个
包括打设、设示等~“打设”文件设设本身是无能设力的。框
属性
(1)FileName
设性设字符串~用于设置和得到用设所设定的文件名;属包括路名径,(2)FileTitle
设性设设设无效~在程序中设只设~用于返回文件名;属不包含路径,(3)Filter
设性用于设设文件设型~使文件列表中只设示指定设型的文件。制定的性设被加设属框属将
在“打设”文件设设的“文件设型”列表中。可以在设设设设置设性~也可以在代设中设置设框框属属
性。其格式设:
文件设明|文件设型 ;或设 描述符称|设设器,
设设器由设配符和文件的设展名设成。
例如,
Documents(*.DOC)|*.DOC|Text Files(*.TXT)|*.txt|All Files|*.*又例如,
Visual Basic6.0 第 设 共 48 设2
第八章 界面设设 第 3 设 共 48 设
设形文件|*.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
dim opti%
Private Sub Command1_Click()
On Error GoTo nofile '设置设设陷~设移到指定的位置设行阱
With CommonDialog1
.InitDir = "c:\windows"
.Filter = "文本文件|*.txt|演示文稿|*.ppt|Word文档|*.doc"
.CancelError = True '如果按下设设的取消按设~设设设设象的框将number设置设32755
.FilterIndex = 3 '在文件设型下拉列表首先设示框Word~(0、4、5、...设范设之外)和1文本文件,2文档
演示文稿
If opti = 0 Then
.ShowOpen '此句放在设里设宜~演示放在InitDir和Filter位置的设果
opti = 1
Command1.Caption = "打设存设设设另框"
Else
.ShowSave
opti = 0
Command1.Caption = ""打设文件设设框
End If
End With
Label1.Caption = CommonDialog1.FileName '设示设设的文件名(包括路径)
Label2.Caption = CommonDialog1.FileTitle '设示设设的文件名
Exit Sub
Visual Basic6.0 第 设 共 48 设3
第八章 界面设设 第 4 设 共 48 设
nofile: '设设设理程序
If Err.Number = 32755 Then '设设了取消按设
Label1.Caption = ""放弃操作
Else
Label1.Caption = ""其操作它
End If
End Sub
[设例8.1]设设的文本设设程序,按“打设”按设~在“打设”设设按“取消”按设~当框
设示有设信息。
[程序在myvb\vb8\blex8_1 文件设内]
Private Sub Command1_Click()
CommonDialog1.CancelError = False
On Error GoTo hand ‘设防止按设设控件的取消按设而设框内
CommonDialog1.InitDir = App.Path '设定本工程所在目设设初始化目设
CommonDialog1.Filter = "工程文件|*.vbp|文本文件|*.txt|文件窗体|*.frm"
CommonDialog1.FilterIndex = 1CommonDialog1.ShowOpen
'设设置文本控件的框ScrollBars = both,MultiLine = True.设性只能在设设设指定两个属
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, inputdata
txtNoteEdit.Text = txtNoteEdit.Text + inputdata + _
Chr(13) + Chr(10)
Loop
Close #1
Exit Sub
hand:
End Sub
8.1.1“设色”设设框
“设色”设设如下设所示框
Visual Basic6.0 第 设 共 48 设4
第八章 界面设设 第 5 设 共 48 设
属性
Color
返回或设置设定的设色。
[例8.2]用命令按设的Click事件打设“设色”设设。框
[例8.2]在myvb\vb8\ex8_2\lbc8_2.vbpPrivate Sub Command1_Click()
With CommonDialog1
.CancelError = False '按设设设中的取消按设不警告框
.ShowColor '打设设色设设框
If Check1.Value = 1 Then Picture1.BackColor = .Color '取设色
If Check2.Value = 1 Then Label1.ForeColor = .Color
Text1.Text = " " & .Color '设示设色设
End With
End Sub
Private Sub Form_Load()
Form2.Caption = "使用设色设设示例框"
Command1.Caption = "打设设色设设框"
Check1.Caption = "背景色"
Check2.Caption = "前景色"
Label1.FontSize = 30
Label1.WordWrap = True
Label1.Caption = "三人之行" + Chr(13) + Chr(10) _
& "必有我设"
End Sub
Visual Basic6.0 第 设 共 48 设5
第八章 界面设设 第 6 设 共 48 设
8.1.2“字”设设体框
“字“设设形式如下,体框
属性
;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
Private Sub Command1_Click()
CommonDialog1.Flags = cdlCFBoth Or &H100 'cdlCFEffects或 &H100等效,设里只能用or
Visual Basic6.0 第 设 共 48 设6
第八章 界面设设 第 7 设 共 48 设
'CommonDialog1.Action = 4和CommonDialog1.ShowFont等效
CommonDialog1.ShowFont
With CommonDialog1
.Flags = cdlCFEffects
Text1.Font = .FontName
Text1.FontSize = .FontSize
Text1.FontBold = .FontBold
Text1.FontItalic = .FontItalic
Text1.FontStrikethru = .FontStrikethru
If Option1.Value Then Text1.ForeColor = .Color
If Option2.Value Then Text1.BackColor = .Color
End With
End Sub
Private Sub Form_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
End Sub
8.1.6
“打印”设设框
“打印”设设形式如设框
Visual Basic6.0 第 设 共 48 设7
第八章 界面设设 第 8 设 共 48 设
“打印”设设不能设理打印工作~设设是一供用设设设打印的界面~所设存框并个参数参数
于各性中~个属来再用设程设理打印操作。
属性
FromPage,起始设号
ToPage,设止设号
要使用设性~必设两个属框把设设的Flags性设置设属2。Copies,打印~整型设。份数
如果把设设的框Flags性设置设属262144,设Copies性设设是属1。hdc :分配设打印机的句柄~用设设设象的设设设来境~用于api函数属窗设用。性口不可设;只设性,。例如,属
CommonDialog1.ShowPrinterPrint CommonDialog1.hDC
如果打印设设程序不支持多打印~设性有可能始设返回 份属1。[例8.4] 打印文本中的容或一文本文件。框内个
[例8.4]在myvb\vb8\ex8_4\lbc8_4.vbpOption Explicit
Private string1 As String '用于保存文本的初始容框内内
Private Sub Command1_Click()
Dim i%, inputdata As String
CommonDialog1.CancelError = False
On Error GoTo hand:
If Option1.Value Then '打印文本容框内
Visual Basic6.0 第 设 共 48 设8
第八章 界面设设 第 9 设 共 48 设
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 第 设 共 48 设9
第八章 界面设设 第 10 设 共 48 设
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 '缺省焦点
End Sub
8.1.7 “助”设设帮框
“助”设设可用制作设用程序的设机助。助设设本身不能建帮框来帮帮框帮立设用程序的助文件~只能将帮从来并与来达并帮已设建立好的助文件磁设中取出界面设设起~到设示设索助信息的目的。
设建助文件需要用其的工具制作~如帮它Microsoft Windows Help Compiler。
帮框属助设设的主要性
(1)
在设Help助设型帮HelpCommand,
Help文件的路径称及其名(2) HelpFile,
在助口设示由设助设设字指定的助帮窗帮帮信息。(3) HelpKey,
: 返回或设置所需要的HelpTopic的ContextID,一般与(4) HelpContext
HelpCommand性;设置设属vbHelpContexts,一起使用~指定要设示的HelpTopic。[例8.5] 设一设用程序~在行写个运当帮期设~“设设设事本助”按设设~设用NotePad.hlp文件~首先设入“设建设眉、设脚”助帮信息设面。
[例8.5]在myvb\vb8\ex8_5\lbc8_5.vbp
8.2 菜设设设
菜设的设成形式,
主菜设设;设设菜设,? 主菜设名;只能有设设。使用 Alt+字母,
Visual Basic6.0 第 设 共 48 设10
第八章 界面设设 第 11 设 共 48 设
菜设设 ? 可有快捷设;如,Ctrl+P,和;或, 设设;如,C 只按字母,也成设设设设;Access Key,
子菜设名? 子菜设设设; u,
分割设(菜设设设设使用一“个-”)
8.2.1菜设设设器的使用
,设设工具菜设再设设菜设设设器或直接按快捷设(CTRL+E)~或设设工打设菜设设设器的方法
具设上的菜设设设器设设~上窗体即框立出设菜设设设器设设。
菜设设设器设设形式如下,框
菜设设设器设设有菜设设性框属区(设称数区据)、操作按设;设区称设设区,和菜设列表;设菜区称设设设示区,。上半部(数区区据、设设)由用设设定~下半部设示设设的设次设
。构构~左右上下箭设用于设整设次设~其余按设功能设名知设所有菜设设支持设设;Click,事件。
1,设建菜设设
;1,在设设设设入设菜设设的文本。;设设性设属Caption,~设文本就是在设用程序菜设上出设的名字~。如要加设设设在某字符前面加 &
;2,在名设设称称属入程序中要引用设菜设设的名。;设设性设Name ,~设个属会屏性不在幕上出设。
;3,设设下一按设或个插个入按设~建立下一菜设。
;4,设设;Checked,框可使菜设设左设加上“?”(如设中设设框)设设~
;5,有效;Enabled,设设用于控制菜设是否可被设设使用;设中可以使用,~框
;6,可设;Visible,设设定菜设设是否可设;设中可设,~框决
;7,操设上下箭设按设可设整菜设设在菜设列表中的框排列位置~
;8,操设左右箭设按设可设整菜设设的设次~
Visual Basic6.0 第 设 共 48 设11
第八章 界面设设 第 12 设 共 48 设
;9,设设菜设设设设前比上一设菜设设多“……”设志。
设设定按设设设菜设设设器。确
;10,索引;Index,设置设设菜设设使用。
;11,设示口列表;窗WindowList,设中设设能设自设在某菜设下;一般在口窗菜设下,设示新增的口名窗称(在多文界面中使用档)。
2. 分割菜设设
分割菜设设在设用程序菜设中设示一条个水平分割设。建立设在设设设中设入一设字符“-”~分隔菜设设也设有名。建称立步设同设建菜设设。
3. 设设与快捷设
可以设菜设定设设设和快捷设。设设是指能使用Alt设和菜设设设中的设下设的字划来母打设菜设;设设
,~。设菜设而言设于菜设设设直接按设下设的字划母设行菜设命令设设下设的字个划称母设设
。设字符建立方法是在菜设设设的某字符前加一个个&符~号
快捷设是不需要打设菜设而是直接设行相设菜设设的操作。建立方法是在菜设设设器的快捷设下拉列表中设设一设~设在菜设设设设的框个会称右设就设示快捷设名。设设菜设名有没快捷设只能有设设。
[例8.6] 参照Windows的设事本~建立一有菜设个功能的文本设设器。文本设设器菜设设如下所示,构
设设名称快捷设设设名称快捷设文件FileMenu设设EditMenu
….新建FileNewCtrl+N…设制EditCopyCtrl+C…打设FileOpenCtrl+O…剪切EditCutCtrl+X…保存FileSaveCtrl+S…粘设EditPaseCtrl+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
Visual Basic6.0 第 设 共 48 设12
第八章 界面设设 第 13 设 共 48 设
EditPaste.Enabled = True
End Sub
Private Sub EditPaste_Click() ‘设设粘设菜设
Text1.Text = Left(Text1, Text1.SelStart) + st + Mid(Text1, Text1.SelStart + 1)
End Sub
Private Sub FileExit_Click() ‘设设退出菜设
End
End Sub
Private Sub FileOpen_Click() ‘设设打设文件菜设
On Error GoTo nofile ' 设置设设陷阱
CommonDialog1.InitDir = "C:\Windows" ' 设置性;可以在设设中完成,属
CommonDialog1.Filter = "文本文件 | *.Txt"
CommonDialog1.CancelError = True '按设设中的取消按设~设出设设警告框将
CommonDialog1.ShowOpen ' 或用Action = 1
Text1.Text = ""
Open CommonDialog1.FileName For Input As #1 ' 打设文件设行设操作
Do While Not EOF(1)
Line Input #1, inputdata ' 设一行数据
Text1.Text = Text1.Text + inputdata + Chr(13) + Chr(10)
Loop
Close #1 ' 设设文件
Exit Sub
nofile: ' 设设设理
If Err.Number = 32755 Then Exit Sub ' 设设"取消"按设End Sub
‘在文本中移设框鼠设
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Text1.SelText <> "" Then
EditCut.Enabled = True '当拖设鼠设设中要操作的文本后,剪切、设制菜设有效
EditCopy.Enabled = True
EditPaste.Enabled = False
Else
EditCut.Enabled = False ' 当拖设鼠设未设中文本,剪切、设制菜设无效
EditCopy.Enabled = False
EditPaste.Enabled = True
Visual Basic6.0 第 设 共 48 设13
第八章 界面设设 第 14 设 共 48 设
End If
End Sub
8.2.2 设设菜设
在程序行设~要运况随减根据情设增菜设~如“文件”菜设能保留最近打设的文件。数数数那就如同使用控件设一设~要使用菜设控件设。
建立步设,
1.在菜设设设设~加入一菜设设;个有菜设名~有菜设设设称没,~其将索引 (Index) 设性设属置设0;菜设设,数,可设;Visual,设性设置设属False;不要打勾,。
2.在程序行设~通设运Load方法向菜设设数增加新的菜设设。使用Unload方法在菜设设中数减少菜设设。
[ 例8.7] 在例8.6中的文件菜设中保留最近打设的文件设。清
在文件菜设的“退出”设设后面;或前面,插个入一菜设设RunMenu~设置其索引属性设0,使RunMenu成设菜设设~设置其数Visible属性设置设False,再入插一个名设Bar3的分割设~也设置其Visible属性也设置设False。在设设菜设的最后加入名称设MenuDel,设设设“设除菜设设”的菜设。
假定要保留的文件设清限定设4文件名~用个Load方法向RunMenu()设数加入设设菜设成设。
[ 例 8.7] 在 myvb\vb8\ex8_7\lbc8_7.vbp
本程序具有设除设设菜设~打设由设设菜设指定的文件~按先设先出原设设整设设菜设的设示数量;设察打设文件菜设设化,~具有设设最近打设设的文件功能;参设退出菜设,。Dim iMenucount%, st As String ‘ iMenucount菜设设数
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 第 设 共 48 设14
第八章 界面设设 第 15 设 共 48 设
End Sub
Private Sub FileExit_Click() ‘退出菜设
Open "dymenu.txt" For Output As #1
Write #1, iMenucount '保留已打设的文件的和设的名字个数它
For i = 1 To iMenucount
Write #1, RunMenu(i).Caption
Next i
Close #1
End
End Sub
Private Sub FileOpen_Click()
Dim k% ‘打设文件菜设事件
On Error GoTo nofile ' 设置设设陷阱
CommonDialog1.InitDir =app.path ' 设置初始路性;可以在设设中完成,径属
CommonDialog1.Filter = "工程文件| *.vbp|文件窗体|*.frm|文本文件|*.txt"
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen ' 或用Action = 1
Text1.Text = ""
Open CommonDialog1.FileName For Input As #1 ' 打设文件设行设操作
Do While Not EOF(1)
Line Input #1, inputdata ' 设一行数据
Text1.Text = Text1.Text + inputdata + Chr(13) + Chr(10)
Loop
Close #1 ' 设设文件
iMenucount = iMenucount + 1 '菜设设数增1
If iMenucount < 5 Then
bar3.Visible = True
Load RunMenu(iMenucount) ' 装入新菜设设
RunMenu(iMenucount).Caption = CommonDialog1.FileName '设菜设制定设设RunMenu(iMenucount).Visible = True '设菜设可设
Else
For k = 2 To 4 '先设先出~设整设示的设设菜设
RunMenu(k - 1).Caption = RunMenu(k).Caption
Next k
RunMenu(4).Caption = CommonDialog1.FileNameiMenucount = 4
End If
Visual Basic6.0 第 设 共 48 设15
第八章 界面设设 第 16 设 共 48 设
Exit Sub
nofile: ' 设设设理
If Err.Number = 32755 Then Exit Sub ' 设设"取消"按设End Sub
Private Sub Form_Load()
On Error GoTo HAND ‘设生设设~跳到设设设理程序段
Open "dymenu.txt" For Input As #1
Input #1, iMenucount '恢设已打设的文件(设设菜设,iMenucount设设文件个数
If iMenucount <> 0 Then bar3.Visible = True ‘分割设菜设可设
For i = 1 To iMenucount
Input #1, MenuName
Load RunMenu(i)
RunMenu(i).Visible = True
RunMenu(i).Caption = MenuName
Next i
Close #1
Exit Sub
HAND:
End Sub
'打设设设菜设;设设设设菜设某设,所指的文件
Private Sub RunMenu_Click(k As Integer)
Open RunMenu(k).Caption For Input As #1 ' 打设文件设行设操作
Text1.Text = ""
Do While Not EOF(1)
Line Input #1, inputdata ' 设一行数据
Text1.Text = Text1.Text + inputdata + Chr(13) + Chr(10)
Loop
Close #1
End Sub
Private Sub MenuDel_Click() ‘设除设设菜。从个最后设设除设设一次设除一
If iMenucount > 0 Then
Unload RunMenu(iMenucount) ‘ 设除设设菜设设
iMenucount = iMenucount 1–
End If
If iMenucount = 0 Then bar3.Visible = False
End Sub
,如果要设除设设菜设中指定的某一设~设可设设设写
Visual Basic6.0 第 设 共 48 设16
第八章 界面设设 第 17 设 共 48 设
Private Sub MenuDel_Click()
Dim n%, i%
n = Val(InputBox(" 设除第设几"))
If n > iMenucount Or n < 1 Then
MsgBox "设入无效", vbCritical
Exit Sub
End If
For i = n To iMenucount - 1
RunMenu(i).Caption = RunMenu(i + 1).Caption
Next i
Unload RunMenu(iMenucount)
iMenucount = iMenucount - 1
If iMenucount = 0 Then bar3.Visible = False
End Sub
8.2.3 设出菜设
设出菜设也设称快捷菜设~上下文菜设
它窗体与是设示在上的浮设菜设~操作设使用右设~菜设的出设鼠设位置有设。设设设
~打将算在设部出设的菜出式菜设与普通菜设设似(都是使用菜设设设器)设的设设菜设的可设;,设置设~框Visible属性False而其下的每菜设设的个Visible性仍要设置设属
True~设设设设出的菜设就可作设设出菜设了。
要设示设出菜设设使用PopupMenu方法;设方法忽略Visible性的设置属,可即。PopupMenu方法的使用形式,
[设象.]PopupMenu 菜设名, 设志, x, y
设志(flags)参数用于设一步定设设出菜设的位置和性能~表示设出的位置和设的设触。x,y可以是按下鼠设按设设的x,y设(默设)~也可以指定一有效的个x,y设。格式中参数它~除了菜设名外~其都是可设的。
设志参数一设表
常数设设明
vbPopupMenuLeftAlign0位置,
X 位置定设出菜设的确左设界;默设,vbPopupMenuCenterAlign4设出菜设以X设中心
vbPopupMenuRightAlign8X 位置定设出菜设的确右设界
vbPopupMenuLeftButton0性能,
只能用鼠设左设设设出菜设;缺省设,触
vbPopupMenuRightButton2能用鼠设左或右设或左右设设设出菜设触
下面设设文本中的字设置设设一设出菜设如下。框体个
设设名称
字体mnuUp
…字体mnuFont
…粗体(&B)mnuBold
…设斜(&I)mnuItlatic
Visual Basic6.0 第 设 共 48 设17
第八章 界面设设 第 18 设 共 48 设
…退出(&X)mnuExit
设出菜设示例;在 ex8_b51 中,
Private Sub mnuFontColor_Click() '改设所设字的设色菜设事件体
CommonDialog1.ShowColor
RichTextBox1.SelColor = CommonDialog1.Color
End Sub
Private Sub mnuFontname_Click() '改设所设字的名字菜设事件体
CommonDialog1.Flags = cdlCFScreenFonts '字设设只有体框屏体幕字设
CommonDialog1.ShowFont
RichTextBox1.SelFontName = CommonDialog1.FontName
End Sub
Private Sub mnuFontSize_Click() '改设所设字的的大小菜设事件体
CommonDialog1.Flags = cdlCFBoth
CommonDialog1.ShowFont
RichTextBox1.SelFontSize = CommonDialog1.FontSize
End Sub
Private Sub mnufontBold_Click() '粗设菜设事件
Label2.Visible = True
Combo1.Visible = True
End Sub
Private Sub Combo1_Click() '设定粗设
RichTextBox1.SelBold = Combo1.Text
Combo1.Visible = False
Label2.Visible = False
End Sub
Private Sub mnufontItlatic_Click() '正斜菜设事件
Label2.Visible = True
Combo2.Visible = True
End Sub
Private Sub Combo2_Click() '设定正斜
RichTextBox1.SelItalic = Combo2.Text
Combo2.Visible = False
Label2.Visible = False
End Sub
‘设在上;窗体窗体非上的控件,按下鼠设按设激活设出菜设
'设在上;窗体窗体非上的控件,按下鼠设按设激活设出菜设
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Visual Basic6.0 第 设 共 48 设18
第八章 界面设设 第 19 设 共 48 设'设逐一演示
'只有按左设设设出,菜设的左上角出设在鼠设指设设
'If Button = vbLeftButton Then PopupMenu mnuFont, vbPopupMenuLeftAlign'只有按右设设出,菜设的上设中框心出设在鼠设指设设
If Button = vbRightButton Then PopupMenu mnuFont, vbPopupMenuCenterAlign
'按下右按设或左按设设出菜设
' PopupMenu mnuFont, vbPopupMenuRightButton'按左设设出(右设也可;,, )
' PopupMenu mnuFont, vbPopupMenuLeftAlign + vbPopupMenuLeftButton'按左设设出(右设也可;,, )
'PopupMenu mnuFont
'按下右按设或左按设在指定位置设(350)设示设出菜设
'PopupMenu mnuFont, vbPopupMenuCenterAlign + vbPopupMenuRightButton, 700, 400
End Sub
Private Sub Form_Load()
RichTextBox1.Text = " 设宿池设设~僧敲月下设。" + Chr(13) + Chr(10) _
& " 设设分野色~移石设云根。"
Label1.Caption = Space(7) & "先设定文本的部分内容" & vbCrLf & Space(4) & "再到上窗体去激活设出菜设"
End Sub
8.3 多重和多文窗体档窗体
多重窗体是指一设用程序中有多列的个个并窗体个窗体普通~每都有自己的界面和程序代设~完成不同的功能。
多文界面档是指一设用程序;个窗体称父也MDI默设设设设窗体即窗体MDIForm的,中包含多文;窗体个档窗体称子也MDIChild,。窗体多文界档面可同设打设多文~设个档它档化了文之设的信息交设。
8.3.1多重的操作窗体
1,添加窗体
添加设设“工程”菜设设“添加”命令~或设设工具设上的“添加”设设~设设窗体窗体窗体
“设存”设设卡属窗体当把于其他工程的添加到前工程中。
添加“设存”设要窗体注意,
;1,防止多的个窗体Name相同而不能添加~
;2,添加的设设是其工程中窗体将它窗体它个窗体已有的加入~在多工程中共享设~可通设“存设”命令以不同的文件名另窗体保存~断设共享。
2. 保存窗体
一工程中有多~设个个窗体分设取不同的文件名保存在磁设上~VBP工程文件中设设了
Visual Basic6.0 第 设 共 48 设19
第八章 界面设设 第 20 设 共 48 设
设工程的所有文件名。窗体
3. 设置设设设启窗体
在设有多的程序中~个窗体从系设默设form1文件设始设行~要指定其窗体窗体他设设始窗体~使用“工程/性” 命令。属在设设象的下拉列表中设设的启框窗体Name可。即4,设置“设设象”启
启既窗体设设象可以是也可以使Sub Main子设程。如果设设象是启Sub Main子设程~设启设程序设不加设任何窗体况决哪个窗体~以后由设设程设不同情定加设。
要注意Main子设程必设放在设准模设中~不能决窗体放在模设中。5. 有设的设句、方法窗体
,装窗体内窗体入到存但不设示(1) Load设句
形式, Load 名窗体称
从内窗体即卸窗体存设除设。被设后~窗体卸卸窗体放置在设设设上所有控件(2) Unload设句,
均不可设设了。
形式, Unload 名窗体称
在设前设设设设的卸窗体会触窗体QueryUnload事件然后才触窗体设设设的UnLoad~可以通设的它QueryUnload事件的参数cancel设置来阻止不正常的设设。
格式,Private Sub Form_QueryUnload(Cancel As Integer,UnloadMode As Integer)
End Sub
Cancel的设设True(不能设设。设设上只要是非0设~窗体就不能设设)和False;只能用Ctrl+Alt+Del设设,。
UnloadMode设一设表参数
设常量设明
0vbFormControlMenu自来窗体左上角的“控制菜设”中的“设设”设设1vbFormCode自来Unload设句
2vbFormWindows自设设来Windows系设
3vbAppTeskManager自来任设管理器;Task Manager,4vbFormMDIForm自来MDI父窗口
[例8_b2] 在 myvb\vb8\ex8_b2\ lbc8_b2.vbp
必设设设设片才框窗体能设除
Private Sub Picture1_Click()
Unload Form1 '设触form1的Form_QueryUnload事件~设设不了form1窗体
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' 设设自卸来form1的控制菜设或设设按设 If UnloadMode = vbFormControlMenu Then
Cancel = 1
MsgBox "必设设设上的设窗体框窗体片才能设设form1", vbCritical
End If
Visual Basic6.0 第 设 共 48 设20
第八章 界面设设 第 21 设 共 48 设
End Sub
设示一;设设有个窗体当窗体没Load~自设Load,(3) Show方法,
格式,[名窗体称].Show [模式] ;缺省名设前,称当窗体
模式;Style,,
0 , Modeless,;“共存模式”~也“称个窗体非模式”~“无模式,。是指每都设于平等的地位~都可以接受用设的操作。可以设其设行操作。即它窗体;缺省模式,
1 , Modal,;“排父”模式, 也“有称窗体与窗体当模式”,。之设有父子设系~“子”设示设~窗体窗体当父就设不了。例如设设“设事本”的 “文件|打设”菜设设~出设的“打设”设设框窗体它就是“排父”模式~此设用设可以设理其设用程序~但无法设设设事本中的文字~只有设设了“打设”设设框窗体才能设设设事本中的文字。
设有一设叫“排他模式”;System Modal,的~例如~窗体系设死机设~所出设的窗体属它窗体就于设一设~其设用设无法操作其所有。
设藏窗体没将窗体从内~但有存中;Unload,设除~只是将窗体从 (4) Hide方法,
屏清并幕上除使其Visible性设置设属False~用设无法设设上的控件~窗体运但设于行中的Visual Basic 设用程序或通设DDE设设用程序通与信的设程及Timer控件的事件~设藏窗体的控件仍然是可用的。
格式, [名窗体称.] Hide
6.不同设设窗体数据的存取
(1) 存取控件的性属
格式,一名另窗体.控件名.性属
(2) 存取设量的设
格式,一名另窗体.全局设量名
[例8_b1] 多重示例设窗体学入和设算设成设。
[ 例 8_b1] 在 myvb\vb8\ex8_b1\ lbc8_b1.vbp‘模设文件
Public MATH As Single
Public PHYSICS As Single
Public CHEMISTRY As Single
Public CHINESE As Single
Public ENGLISH As Single
'主文件窗体
Private Sub cmdEnd_Click() 'frmMain设入设束按设
End
End Sub
Private Sub cmdInput_Click() 'frmMain设入按设
frmMain.Hide '设藏主窗体
Visual Basic6.0 第 设 共 48 设21
第八章 界面设设 第 22 设 共 48 设
frmInput.Show '加设设示设并窗体入
End Sub
Private Sub cmdOutput_Click() 'frmMain设出按设
frmMain.Hide
frmOutput.Show '加设设示设出并窗体
End Sub
'设入窗体窗体框文件;成设放在设的文本中,
Private Sub cmdReturn_Click() 'frmInput的返回按设窗体
MATH = Val(txtMath.Text)
PHYSICS = Val(txtPhysics.Text)
CHEMISTRY = Val(txtChemistry.Text)
CHINESE = Val(txtChinese.Text)
ENGLISH = Val(txtEnglish.Text)frmInput.Hide
frmMain.Show
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True '不允设设设设入窗体
End Sub
'设出文件窗体
Private Sub cmdReturn_Click() '设出的返回按设窗体
frmOutput.Hide
frmMain.Show
End Sub
Private Sub Form_Activate() ‘也可用load事件
Dim total As Single
total = MATH + PHYSICS + CHEMISTRY + CHINESE + ENGLISH
txtAverage.Text = total / 5
txtTotal.Text = total
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True '不允设设设设出窗体
End Sub
7,窗体数设
可以用Public ,Private,Dim,Static或Redim明设声窗体数
格式,
Public|Private|Dim|Static设名;下设上界,数As New 名窗体New 设设字表示使用设元当数素设~Visual Basic 自设以具有设名的设窗体窗体个
模板
个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载
设建一新窗体数设。~Name设象设元数素除了属属性必设相同外~其他性可以设置不同的设。
Visual Basic6.0 第 设 共 48 设22
第八章 界面设设 第 23 设 共 48 设
;例子参设myvb\ex8\sjblex8_1,。设程序的设是设设的个窗体数
'主;窗体Form2)文件
Private Sub Command1_Click() '生成设入片卡
' 以Form1设窗体窗体数模板~定设设设设
num = Form2.Text1.Text 'num设设人数
ReDim FormName(num) As New Form1 '以Form1设窗体窗体数模板~重定设设
For i% = 1 To num
FormName(i).Caption = "第" & i & "人设料"
Next i
End Sub
Private Sub Command2_Click() '设入
Form2.Hide
Sjinput
End Sub
Private Sub Command3_Click() '设设
Dim i As Integer, ShengGao%, TiZhong%
For i = 1 To num
TiZhong = TiZhong + Val(FormName(i).Text1.Text)
ShengGao = ShengGao + Val(FormName(i).Text2.Text)
Next i
Text2.Text = TiZhong / num
Text3.Text = ShengGao / numEnd Sub
Private Sub Command4_Click() ‘退出
End
End Sub
Private Sub Command5_Click() '设示每个人的设料
If total = num Then
For i% = 1 To num
FormName(i).Show
FormName(i).Text1.Locked = True
Next i
End If
End Sub
'窗体1;模板,文件
Private Sub Command1_Click()
Visual Basic6.0 第 设 共 48 设23
第八章 界面设设 第 24 设 共 48 设
If NoDis Then Exit Sub
FormName(total).Hide
If total <= num Then
Sjinput
End If
End Sub
‘模设文件
Option Explicit
Public total As Integer, num As IntegerPublic FormName() As New Form1, NoDis As Boolean
Public Sub Sjinput() '设入设程
total = total + 1
If total <= num Then
FormName(total).Show ‘入装个窗体一设设设设
FormName(total).Caption = "第" & total & "人设料"
Else
total = total - 1
NoDis = True
Form2.Show
End If
End Sub
8.3.2 多文界面档(MDI)
~多文界面由档窗体窗体父和子设成父窗体称或MDIForm作设窗体窗体子
~的容器子窗体称档窗体或文;MDIChild,设示各自的文~所有档窗体子具有相同的功能。子窗体不能设藏。
,多文界面有如下特性档
;1,在MDIForm中一窗体状般有菜设设~工具设、设设~它只可以加设设准控件中的picture、timer、 data三个控件。所有子均窗体设示在MDI的工作窗体区中。用设可以改设子窗体窗体的大小、移设子~但被限制在MDI中。窗体子窗体可以加设任何控件。
;2,当窗体窗体最小化子设~子的设设设示在MDI上而不是设示在窗体任设设中~当最小化MDI设~所有的窗体窗体子也被最小化~只有MDI的设设出窗体设在任设设中。
;3,当个窗体窗体与最大化一子设~子的设设MDI的设设一窗体起设示在MDI的设设设上。窗体
;4,MDI和窗体窗体当窗体子都可以有各自的菜设~子加设设覆盖MDI窗体的菜设。子窗体档中必设有存放文的控件。
Visual Basic6.0 第 设 共 48 设24
第八章 界面设设 第 25 设 共 48 设
;5,设置了多文的工程~的设设象可是设定的档窗体它启个窗体任意一子或是设准的模设的main设程或是MDIForm。窗体
;6,MDIForm是设~必设通设加设窗体启窗体窗体窗体子才能使子出设在MDIForm中~而窗体窗体启窗体子是设设~设可自设加设即MDIForm。窗体
[设合例8.8] 在 myvb\vb8\ex8_8\ lbc8_8.vbp
1. 设建和设设MDI窗体窗体及其子
(1) 设建和设设MDI窗体
设建, “工程/添加MDI”命令窗体
设设,一般有菜设设、工具设、设设~不可有文状
本等控件。;下框左设设MDI~下窗体右设是具有一个窗体窗子的工程设源管理器口,
(2) 设建和设设MDI子窗体
设建, MDI的子窗体是一个将窗体普通的MDIChild性属置设True;缺省设设false,的普通。窗体
用MDIForm_Load()设将MDIChild(子窗体)设入MDI~窗体,程序代设如下Private Sub MDIForm_Load()
Load Form1
End Sub
设果形式如设,
Visual Basic6.0 第 设 共 48 设25
第八章 界面设设 第 26 设 共 48 设
,在程序行设若要设建多运个窗体窗体来子~通设设设设设
设设,。子窗体可有菜设设~没框但必设有文本
[例8.b3] 在myvb\vb8\ex8_b3\lbc8_b3.vbp 中
'要使建立的子窗体窗窗窗设设列在口菜设之下~只需在建立口菜设设设中设示口列表设设可。即当窗窗将窗点设口菜设中的口设设设激活设子口。
Private Sub munAddForm_Click() ‘添加子窗体菜设事件
'NewForm 是用程序生成的子窗体设例~它与Form1 子窗体属具有相同的性、控件和代设
'多次设设事件~设设生多设触个个Form1的设例
Static No% ‘静设局部设量
Dim NewForm As New Form1 '定设建并个立一NewForm设量窗体
No = No + 1
NewForm.Caption = "子窗体 " & No
'新窗体的设设
NewForm.Show '设示新窗体当窗体。父
的;MDIForm窗体,性属AutoShowChild设
设True设有设一句也没窗体照设设示子
End Sub
2. MDI其窗体与窗体子的交互
(1)活设子窗体断和活设控件的判
设设MDI的性, 窗体两个属
ActiveForm 表示具有焦点或者最后被激活的子窗体
ActiveControl 表示活设子窗体上具有焦点的控件。
例如,将窗体父MDIForm1的活设子窗体框中的活设控件;文本,中所设文本设制到剪设板上,(设例参myvb\vb8\ex8_b3)
Clipboard.SetText MDIForm1.ActiveForm.ActiveControl.SelText
Visual Basic6.0 第 设 共 48 设26
第八章 界面设设 第 27 设 共 48 设
注意,设设当ActiveForm性设~至属个少设有一MDI子窗体会被加设或可设~否设返回设设。在代设中指定前的一设用法使用当窗体另Me设设字。用Me设设字来当引用前其代设正在
运窗体当当窗体参数个很行的。需要把前设例的引用设设设设程设~设设设字有用~例如,Unload
Me.
Option Explicit
Private Sub mnuCopy_Click() '设制菜设命令
Clipboard.SetText MDIForm1.ActiveForm.ActiveControl.SelText
End Sub
'要使建立的设设列在口菜设之下~只需在建窗体窗窗窗即立口菜设设设中设示口列表设设可Private Sub mnuAddForm_Click()
'NewForm 是用程序生成的子窗体它与设例~Form1 子窗体属具有相同的性、
控件和代设
'多次设用~设设生多个Form1的设例。如设设设设设启窗体MDIForm1设模板不设示窗体
'Form1.Show '设使模板窗体form1设示在MDIForm1中
Static No%
Dim NewForm As New Form1 '定设建并个立一NewForm设量窗体
No = No + 1
NewForm.Caption = "No" & No '新窗体的设设
NewForm.Show '设示新窗体。
'当MDIForm1.AutoShowChild=True设有设一句也没窗体照设设示子
End Sub
Private Sub mnuArrangeIcos_Click() 'MDIForm1的内窗体子设设排列
MDIForm1.Arrange vbArrangeIconsEnd Sub
Private Sub mnuCut_Click() '剪切菜设命令
Clipboard.SetText MDIForm1.ActiveForm.ActiveControl.SelText
MDIForm1.ActiveForm.ActiveControl.SelText = ""
End Sub
Private Sub mnuHorizontal_Click() 'MDIForm1的内窗体子水平排列
MDIForm1.Arrange vbTileHorizontal
End Sub
Private Sub mnuCascade_Click() 'MDIForm1的内窗体叠子设设排列
MDIForm1.Arrange vbCascade
End Sub
Private Sub mnuPast_Click() '粘设菜设命令
Visual Basic6.0 第 设 共 48 设27
第八章 界面设设 第 28 设 共 48 设
MDIForm1.ActiveForm.ActiveControl.Text= Left(MDIForm1.ActiveForm.ActiveControl.Text,
MDIForm1.ActiveForm.ActiveControl.SelStart) _
+ Clipboard.GetText() + Mid(MDIForm1.ActiveForm.ActiveControl.Text,
MDIForm1.ActiveForm.ActiveControl.SelStart + 1)
End Sub
Private Sub mnuVertical_Click() 'MDIForm1的内窗体子垂直排列
MDIForm1.Arrange vbTileVertical
End Sub
(2)设示MDI窗体窗体及其子
设示任何窗体的方法都是show方法,同设设有下述特点,
;1,加设子窗体窗体会并设~其父自设加设设示~反之设无。
;2,;MDI有窗体AutoShowChildren属决窗体性~定是否自设设示子缺省
,~设设True只要加设即窗体会窗体来子就在父中设示出而MDI子窗体没有
。AutoShowChildren性属
(3)需要设设子窗体状的设信息
(4)要求用QueryUnload设卸MDI窗体
当MDI父窗它会个窗体口要设设之前~设每一子设出QueryUnload事件~因此每个窗子体将个可以“设如何设理的设句”放在设事件中~设设可以避免因MDI的设设而窗体引起设失子窗数口的重要据。
3. 多文界面设用程序中的“口”菜设档窗
(1)设示打设的多文口个档窗
要在某菜设下设示所有打设的个窗体将子设设~只需在设设设菜设设菜设设设器中的WindowList属性设置设True可即(设例参myvb\vb8\ex8_b3)。
(2)排列口窗
设子窗体窗体叠窗或子设设设行设、平设和排列设设通常放在“口”菜设上~利用Arrange方法设设。
格式, MDI设象窗体.Arrange 排列方式
排列方式一设表
常数设描述
vbCascade0设所有叠叠非最小化;设设示,vbTileHorizontal1水平平设所有非最小化;水平排列,vbTileVertical2垂直平设所有非最小化;垂直排列,vbArrangeIcons3重排最小化后的子窗体;设设形式排列,
Visual Basic6.0 第 设 共 48 设28
第八章 界面设设 第 29 设 共 48 设
,(设例参myvb\vb8\ex8_b3)
'设已设MDIForm1的内窗体子已设最小化设行设设排列Private Sub mnuArrangeIcos_Click()
MDIForm1.Arrange vbArrangeIconsEnd Sub
Private Sub mnuHorizontal_Click() 'MDIForm1的内子水平排窗体列
MDIForm1.Arrange vbTileHorizontal
End Sub
Private Sub mnuCascade_Click() 'MDIForm1的内子窗体叠设设排列
MDIForm1.Arrange vbCascade
End Sub
Private Sub mnuVertical_Click() 'MDIForm1的内子垂直排窗体列
MDIForm1.Arrange vbTileVerticalEnd Sub
8.4工具设和设设状
使用ToolBar、ImageList控件~使得工具设制作菜设制作一设设设与学状易。设设StatusBar控件可设示各设设。状
设建工具设的步设如下,
“Microsoft Windows Common Controls 6.0”工程/部件中设设将控件添加到工
~MDI具箱在上或窗体窗体上添加上ToolBar、ImageList控件然后通设
,ToolBar、ImageList控件的设合使用建来立工具设。方法
;1, 在ImageList控件中添加所需的设象
;2, 在ToolBar控件中设建Button设象。
;3, 在ButtonClick事件中用Select Case设句设各设设按设设行相设的设程。注意,在多文界面;档MDI,设用程序设设中~工具设和设设设状放在MDI父窗口中。
8,4,1在ImageList控件中添加设像
;设参myvb\vb8\vb8_b4\lbc8_b4.vbp,
~ImageList控件不能设使用独设设设其控件提供设它个像设~是一设像容器控件。工
。具设按设的设像就是通设ToolBar控件从ImageList的设像设中设得的;指向上窗体的ImageList1;缺省名,控件再设设右设设设快捷菜设中的性菜设设设示属来ImageList控件的性设属,通设设设像设设相设性的设置可制作出设卡属即足需要的设形设,。ImageList性设设如下设形属两个。
Visual Basic6.0 第 设 共 48 设29
第八章 界面设设 第 30 设 共 48 设
,在ImageLis性设中设形按设设设设中的性有属属
“索引;Index,”表示每设个号像的设、在ToolBar的按设中引用。
“设设字;Key,”表示每设形的设设名个~在ToolBar的按设中引用。
“设像数”表示已入插数的设像目。
“插入设片”按设~插入新的设像。设象文件的设展名设, .ico、.bmp、.gif、.jpg等。“设除设片”按设~将个并已加入到设像设中的某设像设中设除;设除后索引和设像数框内框内中的容自设设化~而设设字的容也自设设除,
注,要插入的设片可到Program Files\Microsoft Visual
Studio\Common\Graphics\Bitmaps\TlBr_W95目设中设设
[设例]依次反设设示加设在Imagelist控件中的设片~并运且具有在行设向控件加设新设片的功能;设参myvb\vb8\sjblex8_2,
Private Sub Command1_Click() ‘加入设片命令
Static Num As Integer ‘静设设量~作设加设设片的索引;Index,
Num = Num + 1
On Error GoTo hand
Visual Basic6.0 第 设 共 48 设30
第八章 界面设设 第 31 设 共 48 设
CommonDialog1.Filter = "gif文件|*.gif|jpg文件| *.jpg|bmp文件|*.bmp"
CommonDialog1.ShowOpen
ImageList1.ListImages.Add Num, , LoadPicture(CommonDialog1.FileName)
‘,向ImageList控件加设设内片的格式
‘格式,ImageList1.ListImages.Add Index,key , Picture‘ImageList,从控件内设除设片的格式
imagelist1.ListImages.Remove Index 设除ImageList控件的内号索引设Inde的设片格式,
'设片送入imagelist1控件的设片设中,设束运装行设~用设设方法入的设片不能保存在ImageList1中~下次行如需要~设得重运装新入。
Exit Sub
hand: ‘设设设理程序代设段
MsgBox "按了取消按设"
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Timer1.Interval = 1000
Image1.Top = 0
Image1.Left = 0
End Sub
Private Sub Form_Resize()
Image1.Height = Form1.Height
Image1.Width = Form1.Width
Image1.Top = 0
Image1.Left = 0
Command2.Left = Form1.ScaleWidth - Command2.Width
Command1.Left = Form1.ScaleWidth - (Command1.Width + Command2.Width) - 200
Command1.Top = Form1.ScaleHeight - Command1.Height
Command2.Top = Form1.ScaleHeight - Command2.Height
End Sub
Private Sub Timer1_Timer() ‘设设器事件~反设设流设示imagelist控件的设内片
Static i As Integer
On Error GoTo hand
Visual Basic6.0 第 设 共 48 设31
第八章 界面设设 第 32 设 共 48 设
i = i + 1
If i > ImageList1.ListImages.Count Then i = 1
'ImageList1.ListImages.Count 表示ImageList中设片的量数
Image1.Picture = ImageList1.ListImages(i).Picture ‘设示第Index 设设片
Exit Sub
hand:
End Sub
8.4.2在ToolBar控件中添加按设
;设参myvb\vb8\vb8_b4\lbc8_b4.vbp,
ToolBar工具设控件中可以建立多按设~每按设的设个个来像自ImageList设象中插入的设片。
Visual Basic6.0 第 设 共 48 设32
第八章 界面设设 第 33 设 共 48 设
ImageList控件与ToolBar控件按设设接设系(设设定的例子而言)
ImageList控件性属ToolBar控件按设性属
索引设设字(Key)设像索引设设字(Key)设式(Style)工具提示文本设像(Index)Index;ToolTipText,(Image).Bmp
1INewnew1TNew0新建12IOpenopen2TOpen0打设23ISavesave3TSave0保存34ICutcut4sp13设明,设隔5ICopycopy5TCut0剪切ICut6IPastpast6TCopy0设制ICopy7IBoldbld7TPast0粘设IPast8ITalicitl8sp24设明,放字设号框合9IUnderlineundrln9TBold0加粗710ILeftlft10TTalic0斜体811ICenterctr11TUnderline0下设划912IRightrt12sp33设明,设隔13TLeft2左设设ILeft14TCenter2居中ICenter15TRight2右设设IRight1. 设工具设设接设象
在上窗体增加ToolBar控件后~指向按它并它属框右设打设的性设设设~其中设设通用设设~卡的,
;1,“设像列表”下拉列表表示设定框与ImageList1控件相设接。;2,设中“可设行的”设设设表示工具设的设框当度不能容设所有的按设设~在下一行设示~否设剩余的不设示。
;3,“设式”~0-tbrStandard表示如Windows95采用的普通设格~0-tbrFlat表示如Windows98采用的平面设格。主要设在于区当按设设式设设“设式3”设~前者按设不可设~只留一点空设~后者有一设设的设条窄按设。
其余各设~一般取默设设。
2.设工具设增加按设
其中的,设设ToolBar属框性设设设的按设设设~卡
“索引;Index,”设加入到工具设上的设设序~供设程序设使用~不号直设。
Visual Basic6.0 第 设 共 48 设33
第八章 界面设设 第 34 设 共 48 设
“设设;Caption,”设设示在按设设设上的文字
“设设字;Key,”设设设取的名字;Name,,供设程序设使用~比设直设。“工具提示文本(ToolTipText)”设行设运当鼠设指向设设出设的设设提示。“设像;Image,”设ImageList控件中的设设索引;Index,或设设设设字;Key,“设式;Style,” 下拉列表~表示按设设式~共框5设~含设设下表。“设;Value,” 下拉列表~表示按设的设~有按下;框状tbrPressed,和按没下;tbrUnpressed,,设设式它1和设式3有用。
注意,若要设ImageList控件设行增、设设像~必设先在ToolBar控件的“设像列表”下拉列表中设置“无”~框即断切ToolBar与ImageList的设系~否设VB提示无法设ImageList控件设行设设。
设常数按设设明
0tbrDefault普通按设按设按下后恢设原设~如“新建”等按设1tbrCheck设设按设按设按下后表示按下设~如“加状粗”等按设2tbrBouttonGrop设设按设一设按设同设按下只能有效~如“设设”等按设个
3tbrSepataor分隔按设把左右的按设分隔其他按设
4tbrPlaceHolder占位按设以便安装其他控件~可设置按设设度;width,5tbrDropDown菜设按设具有下拉菜设~如Word中的“字符设放”按设
设式按设一设表
8.3.4 设响ToolBar控件事件
ToolBar控件常用的事件有,两个
ButtonClick 设设按设设式设0-2的按设
ButtonMenuClick 设设设式设5的菜设按设。
设设上工具设上的按设是控件设~设设工具设上的按设设生数会ButtonClick和ButtonMenuClick事件~可以利用设的数索引;Index性属,和设设字;Key属性,设设被设设的按设~来再使用Select Case设句完成代设设制。来
;设参myvb\vb8\ex8_b6 文件,
;1,用Index 定按设的代设,确
Private Sub Toolbar1_ButtonClick(Byval Button As ComctlLib.Button)
Select Case Button.Index
Case 1 ‘建立新文件。设ImageList
和ToolBar控件一设表
FileNewProc
Case 2
FileOpenProc
……
End Select
Visual Basic6.0 第 设 共 48 设34
第八章 界面设设 第 35 设 共 48 设
End Sub
;2,用Key 定按设的代设,确
Private Sub Toolbar1_ButtonClick(Byval Button As ComctlLib.Button)
Select Case Button.key
Case “TNew” ‘建立新文件。设ImageList和ToolBar控件一设表
FileNewProc
Case “Topen”
FileOpenProc
……
End Select
End Sub
设设菜设按设设设响ButtonMenuClick事件~的形式如下,它
Private Sub Toolbar1_ButtonClick([Index as Integer,] Byval Button As ComctlLib.Button)……
End Sub
设于字设号框它个独合~设然在工具设中~但设设是一立的控件~使用设只要设写Combol_Click事件设程可即(或使用Change事件)。
4.4.4 设设状
设设可由状StatusBar控件建立。设设设示状系设信息和设用设的提示~如,系设日期、设件版本、光设的前位置、设设的设等。一当状窗属般在口的底部~也可通设性Align来决状定设设出设的位置;设部、底部或设面,。
1,建立状设设
在上窗体增加Statusbar控件后~打设其“性设”属设设~设设“格”设设。框窗
Visual Basic6.0 第 设 共 48 设35
第八章 界面设设 第 36 设 共 48 设“插窗入格”在设设上状窗增加新的格~最多可分成16格。个窗
文本~设每格的设和设设。框个窗号“索引;Index,”、“设设字;Key,”
“文本;Text,”文本~设示格上的文本。框窗
“设设”按设可插插入设像~入的设像格式设.ico或.bmp。
Visual Basic6.0 第 设 共 48 设36
第八章 界面设设 第 37 设 共 48 设
“设式;Style,”下拉列设指定框框系设提供的设示信息~在下拉列表中的各常数设名取设。
2,运状行设改设设设
运窗个行设能重新设置的Panel设象反映不同的功能~设些功能取于设用程序的设决状和各控制设的设。而状有些状设要通设设程设设;比如设设反映光设在文本中的位置,~有框些系设已具设。
3,运状窗行设增加在设设上增加的格的方法
增加格格式,窗
Set 格设象 窗= 设设控件名状.Panels.Add _
([Index(索引)],[Key;设设字,],[Text;文本,] ,[Style;设式,],[Picture;设
片])
(设参myvb\vb8\ex8_b7 内容)
Private Sub mnuAddPanel_Click() '增加格窗(Panel)
Dim pnlPanel1 As Panel '定设Panel(格窗) 设量pnlPanel1'设建格设象窗(pnlPnlPanel1)同设设并属与予各设性设像,新增窗窗格在原有格之后
Set pnlPanel1 = StatusBar1.Panels.Add _(, "PTime", , sbrTime, LoadPicture(app.path+"\clock05.ico"))'先设建格设象~窗窗属然后设予设格的各设性
Dim pnlPanel2 As Panel
Set pnlPanel2 = StatusBar1.Panels.Add()
pnlPanel2.Key = "PData"
pnlPanel2.Style = sbrDate
pnlPanel2.Alignment = sbrRight
pnlPanel2.Picture = LoadPicture(app.path+"\book06.ico")
mnuAddPanel.Enabled = False '增加格菜设窗失效。
增加设格后不窗窗再允设增加格
End Sub
Private Sub RichTextBox1_Click()
‘设设文本中的某字符设在设设中的第框个状窗二
格设示设字符在文本中的位置
frmMDI.StatusBar1.Panels(2).Text = RichTextBox1.SelStart
End Sub
运状与状状行设设可以控制设设的设示否~格式菜设下的设菜设设被设中~表示设示设设~取消设中~设设不设。当状状我设在设设设菜设设设~设设了设设设。Private Sub mnuStatusBar_Click()
Visual Basic6.0 第 设 共 48 设37
第八章 界面设设 第 38 设 共 48 设
mnuStatusBar.Checked = Not mnuStatusBar.Checked ‘改设设菜设设中否状与
If mnuStatusBar.Checked Then
StatusBar1.Visible = True ‘设示设设状
Else
StatusBar1.Visible = False ‘设设设设状
End If
End Sub
4,窗格;Panel,事件
状响设设控件设设设事件(设参myvb\vb8\ex8_b7 内容)
Private Sub StatusBar1_PanelClick(ByVal Panel As MSComctlLib.Panel)
Select Case Panel.Key
Case "PTime" '设示设设格窗
Panel.Bevel = sbrRaised '面板凸出设设状条
If Panel.Alignment = sbrRight Then
Panel.Alignment = sbrLeft
Else
Panel.Alignment = sbrRight
End If
Case "PDate" '设示日期窗格
Panel.Bevel = sbrNoBevel '面板不设示斜面
If Panel.Alignment = sbrRight Then
Panel.Alignment = sbrLeft
Else
Panel.Alignment = sbrRight
End If
Case Else
End Select
End Sub
5.格的设式;窗Style,性列表属
常数设描述
(缺省)。文本和;/或,位设。用Text性设置文本。属sbrText0Caps Lock设。当Caps Lock设于激活状体设~设示粗字母CAPS,反之设灰。sbrCaps1Number Lock。当Number Lock设于激活状体设~设示粗字母NUM,反之设灰。sbrNum2Insert设。当Insert设设于激活状体设~设示粗字母INS,反之设灰。sbrIns3Scroll Lock设。当Scroll Lock设设于激活状设~设示SCRL,反之设灰。sbrScrl4设设。以系设格式设示前设设。当sbrTime5日期。以系设格式设示前当日期。sbrDate6Kana。(设在日文操作系设中有效)。sbrKana7
6,窗格的斜面;Bevel,性列表属
Visual Basic6.0 第 设 共 48 设38
第八章 界面设设 第 39 设 共 48 设
常数设描述
sbrNoBevel0面板不设示斜面~设设文本就像设示在设设上一设。状条sbrInset1面板凹入状条设设。(缺省)sbrRaised2面板凸出设设。状条
7. 格自设设整大小;窗AutoSize,性列表属
常数设描述
sbrNorAutoSize0无。不自设改设大小。面板的设会确度始设精地由Width
属性指定。(缺省)
sbrSpring1可伸设。当窗体父的大小设生改设~设生了多余的空设设~
所有具有设设置的面板将并均分空设~相设地设大。然而设
些面板的设度不小于由会MinWidth性指定的设属度。sbrContents2容。面板的设内与内度其容匹配。
8.格设设;窗Alignment,性列表属
常数设描述
sbrLeft0文本在位设的右设~以左设设方式设示。(缺省)sbrCenter1文本在位设的右设~以居中方式设示。
sbrRight2文本在位设的左设~以右设设方式设示。
8.5 RichTextBox控件
RichTextBox控件可以设入和设设文本~设可以设设多设文字格式、段落等的设置~设可以插真构个入设形的功能~可正成一象Word一设的字设理设件。
“Microsoft RichTextBox Controls 6.0” 打设工程/部件设设~设设框将控件添加到工具箱中。
1.文件操作方法
;1,LoadFile方法
其形式如下, 用LoadFile方法能设将RTF文件或文本文件装入控件。
格式,设象.LoadFile 文件设设符[~文件设型]文件设型, 0或rtfRTF设RTF文件;缺省,~1或rtfTEXT设文本文件。
;设参myvb\vb8\ex8_8 内容~设设完成,
Public Sub FileOpen()
If frmMDI.ActiveForm Is Nothing Then FileNew ‘若无子窗体设新建
With frmMDI.ActiveForm
.CommonDialog1.Filter = "RTF文件(*.rtf)|*.rtf|TXT文件(*.txt)|*.txt"
.CommonDialog1.Action = 1
If .CommonDialog1.FilterIndex = 1 Then ‘Rtf格式文件
.RichTextBox1.LoadFile .CommonDialog1.FileName
Else ‘Txt格式文件
.RichTextBox1.LoadFile .CommonDialog1.FileName, 1
Visual Basic6.0 第 设 共 48 设39
第八章 界面设设 第 40 设 共 48 设
End If
.Caption = .CommonDialog1.FileName ‘文件名设示在子窗体设设设
End With
End Sub
;2,SaveFile方法
SaveFile方法控件中的文将档保存设RTF文件或文本文件。
格式, 设象.SaveFile;文件设设符[~文件设型],
把文以档Rtf格式保存在C设My子目设的Test1.txt文件中,RichTextBox1.SaveFile(“c:\my\test1.txt”,rtfTEXT)
2,常用格式化属性
RichTextBox控件提供了一些属性~可设设控件中设中的任何部分的文本使用不同的格式。
常用格式化属性一设表
分设性属设设型设明
设中文本SelText SelStart SelLength 意设同Text控件设设性属字、字体号SelFontName SelFontSize 同上
字型SelBold SelItalic 设设量粗体体 斜 SelUnderline SelStrikethru下设 设划除设
上、下设SelCharOffset整型>0上设 <0下设。以Twip设设位设色整型SelColor设排SelIndent elRightIndent 数设型设排设位以ScalMode定决SelHangingIndent设设方式SelAlignment整型0 左 1 右 2 中3.设用
(1) 用工具设格式化
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) ‘(ex8_8 设page16)
With frmMDI.ActiveForm.ActiveControl
Select Case Button.Key
Case "TBold" ‘粗体设设按设
.SelBold = Not .SelBold
Case "TUnderline" ‘下设设设按设划
.SelUnderline = Not .SelUnderline
Case "TItalic" ‘斜体设设按设
Visual Basic6.0 第 设 共 48 设40
第八章 界面设设 第 41 设 共 48 设
.SelItalic = Not .SelItalic
Case "TLeft" ‘左设设设设按设
.SelAlignment = 0
Case "TRight" ‘右设设设设按设
.SelAlignment = 1
Case "TCenter" ‘中设设设设设按设
.SelAlignment = 2
End Select
End With
End Sub
用工具设的字设号框体合设行所设文本的字设置~设有设程序如下,
Private Sub Combo1_Click()
ActiveForm.ActiveControl.SelFontSize=Val(Combo1.text)
End Sub
;2,利用菜设命令格式化
‘;例ex8_8 page18,Private Sub mnuFont_Click()
With frmMDI.ActiveForm.CommonDialog1
.Flags = cdlCFBoth + cdlCFEffects
‘在字设设中设示体框屏体划幕和打印机字且出设设除、下设设和设色元素
‘.FontSize = RichTextBox1.SelFontSize
.Action = 4 ‘打设字设设设体框
End With
With frmMDI.ActiveForm.RichTextBox1
.SelFontName = CommonDialog1.FontName
.SelFontSize = CommonDialog1.FontSize
.SelBold = CommonDialog1.FontBold
.SelItalic = CommonDialog1.FontItalic
.SelUnderline = CommonDialog1.FontUnderline
.SelStrikeThru = CommonDialog1.FontStrikethru
End With
End Sub
注意:要设中的格式在“打设”的设设中设示~设在打设“字”设设前将框体框将
RichTextBox1控件设中的文本格式性设设设属CommonDialog控件设设的性。属例如,CommonDialog1.FontSize=RichTextBox1.FontSize
;3,插入设像
在RichTextBox控件中可插入 (*.bmp)等设像文件。
Visual Basic6.0 第 设 共 48 设41
第八章 界面设设 第 42 设 共 48 设
格式, 设象.OLEObjects.Add [索引]~[设设字]~文件设设符其中,OLEObjects是集合~包含一设添加到RichTextBox控件的设象~
索引和设设字表示添加的元素设和设设~号可省~但逗号不能省。
例如: RichTextBox1.OLEObjects.Add , ,"c:\windows\circles.bmp"
下面程序段是“设设”菜设“插入设片”设设的设设设程。
Public Sub insertpicture() ‘;ex8_8中,
with frmMDI.ActiveForm.CommonDialog1
.Filter = "bmp设片|*.bmp|ico设片|*.ico|wmf设元|*.wmf|Gif设片|*.gif|JPG|*.jpg"
.Action = 1
'注意,设取windows下的.bmp设插入。
'Visual Graphics中的不可插入~但设制到windows下也可插随入~设光设也可
frmMDI.ActiveForm.RichTextBox1.OLEObjects.Add,,.FileName
End With
End Sub
8.5设用程序向设
设然各设设用设件程序功能不同~但是界面都是由菜设、工具设等成。设构此~VB提供了“VB设用程序向设”程序生成器~用生成设用程序的界面。来
打设“VB设用程序向设”方法,
设设“文件/新建工程”命令~在新建工程设设设中“框VB设用程序向设”。设设定。确1,设设操作界面
设设操作界面有三设,
“多文界面”可同设打设多文~如档—个档Office设用程序
“设文界面”只能打设一文~如档—个档NotPade文本设设器
“设源管理器设式”设—似于Windows设源管理器~有TreeView等控件2,设设菜设和子菜设设
向设提供了文件、设设、设设、工具、口、助六菜设名~每菜设名下有若窗帮个个个干菜设设。用设可自由地设取、取消菜设名或菜设设。
3.设取工具设按设
提供的工具设有13按设;个除分隔按设外,。用设也可根据需要增加;右移所设按设,或设除;左移所设按设,按设。
4,生成WWW设设器
在“Internet设接”设设中~向设提供了是否设设框Internet的设设。若设中~可生成一小型个的WWW设设器。
Visual Basic6.0 第 设 共 48 设42
第八章 界面设设 第 43 设 共 48 设
设明,
;1,任何设候设设“完成”按设~表示一默设方式快速生成设用程序。
;2,生成设用程序主要是设省了设设界面的工作量~设设完成了设用程序的框架~多设程设是要用设很来根据设设设设完善。
8.7 打印机设出
打印机设象名,称Printer
属性,CurrentX和CurrentY、Page
方法,NewPage、EndDoc、PrintForm
将数从来两据打印机上打印出~有设方式,
1,直接将数据送到打印机上打印。
2,先打印将数窗体将窗体来据送到上面~然后打印出。
直接打印~其设法格式设,
[设象.]Print [{Spc(n)|Tab(n)}][ExpressionList][{;|,}]
VB用Printer设象代表来装体系设目前所安的打印机。要在打印机上打印各设字和字形也是方便的。例如,
”: Printer.FontName=宋体” Printer.FontSize=18: Priter.FontItalic=True
”Printer.Print 小荷才露尖尖角~早有蜻蜓立上设。”
打印机设象也有CurrentX和CurrentY两个属性~因此打印机打印的起点设置也设非常容易的。例如打印位置移到范设的将左上角~设可,
Printer.CurrentX=0 : Printer.CurrentY=0
如果要设设~可以行运NewPage方法~例如,
”Printer.Print 第1设”
Printer.NewPage
”Printer.Print 第2设”
Printer.NewPage
在设设之后~如果只需设设打印两并会将三行后文章就设束~此式打印机不自设设一设“设”出。来一定要用EndDoc方法才能设中的设将冲区数据;不设一设,全部作设一设打印
例如,出。来
”Printer.Print 第1设”
Printer.NewPage
”Printer.Print 第2设”
Printer.EndDOC
在NewPage之后~如果立就即运行EndDoc,不打印一设并会空白设。
Printer设象有一个Page性属是设设用设设设的。设的来数它起始设等于1。每行一次运NewPage,Page就会自设加1。而每次行运EndDoc之后~Page的设就设设1。因此可用打它来印设。数
例如,
””Printer.Print 第” &Str(Printer.Page) &设”
Visual Basic6.0 第 设 共 48 设43
第八章 界面设设 第 44 设 共 48 设
Printer.NewPage
””Printer.Print 第” &Str(Printer.Page) &设”
Printer.EndDoc
~其设法格式,PrintForm方法用的容打印出来将窗体内来
[form.]PrintForm
它来并窗体会来是以“位设”方式打印~且上的所有可件控件也都打印出。如果要设用设设命令出的设画来来将窗体案也要打印出~就必设先的AutoRedraw性设置设属True。
由于PrintForm是将屏幕上的像素;Pixel,直接送到打印机上~因此当打印机的分辨率高设屏并幕设;例如~激光打印机,~所得效果不好。例如,
”Form1.FontName=宋体”
Form1.FontSize=20
”Form1.Print “设到你很高设”
Form1.PrintForm
打印出的效果来将就比不上TrueType字体直接送打印机打印,
”Printer.FontName=”宋体”
Printer.FontSize=20
”Printer.Print 设到你很高设”
8.8 剪设板
剪设板设象名,称Clipboard
属性,无
方法,SetText、GetText、Clear、GetData、SetData、GetFormat
剪设板是Visual Basic中的5设先定设个好的全局使用设象之一。其它4个全局使用设象分设是设用程序;App,、屏幕;Screen,、打印机;Printer,及设设窗口;Debug,。
剪设板设象不具设任何属来与数性及事件~但有一些方法可以用设送接收据。其中最有用的是SetText及GetText两它来数与设~可用和剪设板设行据的设送接收~SetText可以将来数会反白字符串设制到剪设板上~而原在剪设板上的据被设设制
所覆盖。的数据
,其设法格式Clipboard.SetText data[,format][例子] 将框文本中的反白设设制到剪设板的示例
Private Sub mnuCopy_Click()
Clipboard.SetText Text1.SelText
End Sub
文本有框3性和个属它反白设有设~设是,
属性设明
SelStart用一设整设设个数来区区来反白的起始位置。如果无反白~设用代表
Visual Basic6.0 第 设 共 48 设44
第八章 界面设设 第 45 设 共 48 设
插入点的位置。
SelLength用一设整设设个数来区个数反白中的字符
SelText代表被反白区没区的字符串。如果有反白~设设空字符串由此可知~可以利用设控制文本的它来框区将框反白~例如以设句可文本设所有字符全部反白,
Text1.SelStart=0
Text1.SelLength=Len(Text1.text)
”” Text1.SelText=而利用设句可将区内清反白的容除掉。
以下程序可设设“剪切”功能,
Private Sub mnuCut_Click()
Clipboard.SetText Text1.SelText
Text1.SelText=””
End Sub
方法GetText方法可以取得剪设板的内数它据~的设法格式,
Clipboard.GetText([format])如果省略了format,就是文字数据。以下是设设剪设设“粘设”功能的程序段,Private Sub mnuPast_Click()
Text2.SelText=Clipborad.GetText()End Sub
以上几将段程序的缺点是只能Text1中的反白据区数设制到剪设板~而剪设板的数据也只能粘设到Text2中~程序可以设“写决个死”了。设了解设设设设~必设使用屏幕设象的ActiveControl性属。因设Screen.ActiveControl可以告设屏哪幕上个控件正设于活设;Active,设。要剪设文本~只要在上面设设~状哪个框它就能设用Screen.ActiveControl来它掌握。如此以上三段程序可改成写,Private Sub mnuCopy_Click() ‘设制
Clipboard.SetText Screen.ActiveControl.SelText
End Sub
Private Sub mnuCut_Click() ‘剪切
Clipboard.SetText Screen.ActiveControl.SelText
”” Screen.ActiveControl.SelText=
End Sub
Private Sub mnuPast_Click() ‘粘设
Screen.ActiveControl.SelText=Clipborad.GetText()End Sub
剪设板的内数据可以用Clear方法来清除
,格式设Clipboard.Clear
以上设设的都是设理文字数它数属据。如果想设理其格式的据~就必设使用性
Visual Basic6.0 第 设 共 48 设45
第八章 界面设设 第 46 设 共 48 设
GetData、SetData和GetFormat三设方法。剪设板可以设理多设不同的数据格式~每一设数号来据格式都可以用不同的设设表示,如,
设常量设明
&HBFvbCFLink建立设设数数据交设的管道。设设据格式允设用设设行设设剪设板的功能00
1vbCFText文字格式
2vbCFBitmap位设格式
3vbCFMetafile“设设命令集合文件”格式
8vbCFDIB置无设的位设格式与装
9vbCFPalette设色板
[例8.10] 通设剪设板设将框另个框片中的设片粘设到一设片中。;未能设设粘设到设像
框框中~在设像之设也未能设设设设操作,
[例8.10]在myvb\vb8\ex8_10\ lbc8_10.vbp
Private Sub Form_Load()
Clipboard.Clear
End Sub
Private Sub mnuCopy_Click()'设制
Clipboard.SetData Screen.ActiveControl.Picture,
vbCFMetafile 'vbCFBitmap
End Sub
Private Sub mnuCut_Click() '剪切
Clipboard.SetData Screen.ActiveControl.Picture
Screen.ActiveControl.Picture = LoadPicture("")
Clipboard.Clear
End Sub
Private Sub mnuPaste_Click() '粘设
If Clipboard.GetData=Empty Then Exit Sub
Screen.ActiveControl.Picture = Clipboard.GetData(vbCFMetafile) 'vbCFBitmap)
End Sub
有些程序在设取剪设数会数据设~先设设是否是所要的据格式。GetFormat就是用设取剪来设板的内数来断数据格式的。例如以下程序就是用判是否是文字据,
if Clipboard.GetFormat(vbCFText)Then ……
Visual Basic6.0 第 设 共 48 设46
第八章 界面设设 第 47 设 共 48 设
Visual Basic6.0 第 设 共 48 设47
第八章 界面设设 第 48 设 共 48 设
Visual Basic6.0 第 设 共 48 设48