8.1 通用对话框
8.2 菜单设计
8.3 多重窗体和多文档界面
8.4 工具栏和状态栏
8.5 RichTextBox控件
8.6 应用程序向导第八章 界面设计 ( 3学时)
8.1 通用对话框 (CommonDialog)
属性
Action:打开通用对话框。
DialogTiltle:对通用话框标题。
CancelError
True:选择“取消”按钮,出现错误警告;
Err.Number置为 32755(cdCancel)。
False(缺省 ):选择“取消”按钮,没有错误警告。
工程 /部件 选定 部件标签 选定 Microsoft CommDialog Control 6.0
通用对话框添加到工具箱通用对话框的类型 Ac t i on 方法打开 ( Ope n) 1 S ho w Ope n
另存为 ( S a v e As) 2 S ho w S a v e
颜色 ( C o l o r ) 3 S ho w C o l o r
字体 ( F o nt ) 4 S ho w F o nt
打印机 ( P r i nt e r ) 5 S ho w P r i nt e r
和帮助 ( He l p) 6 S ho w He l p
确定打开通用对话框:
属性
FileName:包含路径
FileTitle:不包含路径
Filter:例如,
Documents(*.DOC)|*.DOC|Text Files(*.TXT)|*.txt|All Files|*.*
FilterIndex:决定在文件类型列表框中显示第几组类型的文件。
InitDir:初始化路径
1.,打开,文件对话框
DialogTiltle
FileName
InitDir
Filter FilterIndex
DefaultExt
例 8.1 简单的文本编辑程序,当按“打开”按钮,在“打开”对话框按“取消”按钮,显示有关信息。
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
2.,另存为,对话框没有提供真正的存储文件操作,仍需要编程完成储存操作。
属性
DefaultExt:缺省扩展名例 8.1中“另存为,..”按钮的事件过程
3.,颜色,对话框属性
Color:返回或设置选定的颜色。
例 8.1中“颜色,..”按钮的事件过程
4.,字体,对话框
Flags属性:指示所显示的字体类型,必须设置 。
cdlCFScreenFonts &H1 屏幕字体
cdlCFPrinterFonts &H2 打印机字体
cdlCFBoth &H3 打印机字体和屏幕字体。
cdlCFEffects &H100 显示删除线和下划线检查框以及颜色组合框
FontName FontBold,FontItalic FontSize
FontStrikethru
FontUnderline
Color
Min,Max
例 8.1中“字体,..”按钮的事件过程
5.,打印”对话框属性
FromPage:起始页号
ToPage:终止页号
Copies:打印份数如果打印驱动程序不支持多份打印,该属性有可能始终返回 1。
例 8.1中“打印,..”按钮的事件过程
6.,帮助”对话框帮助文件需要用其它的工具制作,如 Microsoft Windows Help Compiler。
例 8.5
属性
HelpCommand:在线 Help帮助类型
HelpFile,Help文件的路径及其名称
HelpKey:在帮助窗口显示由该帮助关键字指定的帮助信息。
8.2 菜单的设计菜单形式:
主菜单名快捷键热键子菜单标记主菜单条分隔线菜单项子菜单名菜单列表框一、菜单编辑器的使用工具/菜单编辑器 (CTRL+E)
窗体上快显菜单/菜单编辑器菜单项属性常用属性:
1,标题 (Caption) 热键:前面加 &
2,名称 (Name)文本框 分隔符也应有名称。
3,快捷键 (Shortcut) 菜单名没有快捷键
4,复选 (Checked)检查框 TRUE 有?
5,有效 (Enabled)检查框
6,可见 (Visible)检查框操作按钮示例 8.6 建立一个有菜单功能的文本编辑器。
二,菜单项增减在程序运行时,菜单随时增减,如“文件”菜单能保留最近打开的文件数。
这同控件数组一样,使用菜单数组。
步骤:
1.在菜单设计时,加入一个菜单项,其 Index为 0(菜单数组),
Visual为 False。
2.在程序运行时,通过 Load方法向菜单数组增加新的菜单项。
例 8.7在 8.6中的文件菜单中保留最近打开的文件清单。
同样,要删除所建立的菜单项,使用 UnLoad方法向菜单数组减少菜单项。
三,弹出菜单 (快捷菜单 )
显示 在窗体的浮动菜单,操作时使用右键,菜单与鼠标位置有关。设计与普通菜单,仅该菜单名不可显示;要显示时使用 PopupMenu方法弹出菜单 。
形式,[对象,]PopupMenu菜单名,标志,x,y
标志,表示弹出的位置和触发的键位置 性能
0,X 位置确定弹出菜单的左边界 0只能用鼠标左键触发弹出菜单;
4:弹出菜单以 X为中心 2:能用鼠标左、右键键触发弹出菜单;
8,X 位置确定弹出菜单的右边界位置与性能是加的关系 。
弹出菜单示例
Sub Text1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
If Button = 2 Then PopupMenu EditMenu,vbPopupMenuCenterAlign
End Sub
8.3 多重窗体和多文档窗体一、多重窗体
1.添加窗体
“工程 |添加窗体”
新建现存添加“现存”窗体时要注意:
防止多个窗体的 name相同而不能添加;
添加的窗体实际是将其它工程中已有的窗体加入,多个工程共享窗体;
通过“另存为”命令以不同的窗体文件名保存,断开共享。
2,保存窗体一个工程中有多个窗体,应分别取不同的文件名保存在磁盘上,VBP工程文件中记录了该工程的所有窗体文件名。
3,设置启动窗体设置启动对象
4,窗体语句
(1)Load语句:装入窗体到内存但没有显示窗体形式,Load 窗体名称
(2)Unload语句:从内存删除窗体形式,Unload 窗体名称
“工程 /属性”,启动对象”
5,窗体方法
(1)Show方法:显示一个窗体(当窗体没有 Load,自动 Load)
[窗体名称 ].Show [模式 ]
0 - Modal:关闭才能对其它窗体进行操作。
1 - Modeless,可以对其它窗体进行操作。
(2) Hide方法:隐藏窗体,没有 Unload删除
[窗体名称,] Hide
6.不同窗体间数据的存取
(1)存取控件的属性另一窗体名,控件名,属性
(2)存取变量的值另一窗体名,全局变量名例 输入和计算学习成绩。
模块:
Public MATH As Single
Public PHYSICS As Single
Public CHEMISTRY As Single
Public CHINESE As Single
Public ENGLISH As Single
二,多文档界面 (MDI)
引例 8.8
1,创建和设计 MDI窗体及其子窗体
(1) 创建和设计 MDI窗体创建:,工程 /添加 MDI窗体”命令标准窗体
M DI 窗体
M DI 子窗体
(v 6 b 8 - 1 )
设计,一般有菜单栏、工具栏、状态栏
(2) 创建和设计 MDI子窗体创建,MDI子窗体是一个 MDIChild属性为 True的普通窗体。
要创建多个子窗体,通过窗体类来实现:
Public Sub FileNewProc()
Dim NewDoc As New frmMDIChild
No = No + 1
NewDoc.Caption = "no" & No
NewDoc.Show
End Sub
设计,可有菜单栏,但必须有文本框。
MDI子窗体的 Name
2,MDI窗体与子窗体的交互
(1)活动子窗体和活动控件
MDI窗体的两个属性,ActiveForm 和 ActiveControl
例将子窗体的文本框中所选文本复制到剪贴板上:
ClipBoard.SetText frmMDI.ActiveForm.ActiveControl.SelText
(2)显示 MDI窗体及其子窗体显示任何窗体的方法为 show,还有有关规则:
( 1)加载子窗体时,其父窗体会自动加载并显示;反之则无。
( 2) MDI窗体有 AutoShowChildren属性,决定是否自动显示子窗体
(3)维护子窗体的状态信息
(4)用 QueryUnload卸载 MDI窗体
3,多文档界面应用程序中的,窗口,菜单
(1)显示打开的多个文档窗口要在某个菜单上显示所有打开的子窗体标题,只需利用菜单编辑器将该菜单的 WindowList属性设置为 True。
(2)排列窗口利用 Arrange方法进行层叠、平铺和排列图标。
形式,MDI窗体对象,Arrange 排列方式排列方式 常数 值 描述
v bC a s c a de 0 层叠所有非最小化
v bT ile H oriz on ta l 1 水平平铺所有非最小化
v bT ile V e r tic a l 2 垂直平铺所有非最小化
v bA r r a ng e I c on s 3 重排最小化
8.4工具栏和状态栏
,Microsoft Windows Common Controls 6.0”将控件添加到工具箱,
通过 ToolBar,ImageList组合使用建立工具栏,步骤:
1.在 ImageList控件中添加所需的图象
2.在 ToolBar控件中创建 Button对象。
3.在 ButtonClick事件中用 Select Case语句对各按钮进行相应的编程。
一、在 ImageList控件中添加图象
ImageList控件不单独使用,专门为其它控件提供图像库,
索引( Index)、
关键字( Key)
在 ToolBar中引用图象文件的扩展名为,.ico,.bmp,.gi
f,.jpg等二、在 ToolBar控件中添加按钮
1.为工具栏连接图象
ToolBar与
ImageList的连接工具栏样式
2.为工具栏增加按钮索引( Index)、关键字( Key)每个按钮的编号、标识,
ButtonClick事件中引用;
图象 (Image) ImageList对象中的图象,值可以是 Key或 Index
样式 (Style),共 6种
St y l e =0 St y l e =3 St y l e =4 St y l e =1 St y l e =2
除菜单按钮 (5)外的 5种样式三,响应 ToolBar控件事件
ToolBar控件常用的事件有两个,ButtonClick和 ButtonMenuClick。前者对按钮样式为 0-2,
后者对样式为 5的菜单按钮。
( 1)用索引 Index确定按钮 (2)用关键字 Key确定按钮
Private Sub Toolbar1_ButtonClick(Byval Button As ComctlLib.Button)
Select Case Button.Index
Case 1
FileNewProc
Case 2
FileOpenProc
……
End Select
End Sub
注意:第 1个按钮的 Index值为 1。用 Index还是用 Key比较,Key 可读性好,可维护性好。
Select Case Button.Key
Case "TNew"
FileNewProc
Case "TOpen"
FileOpenProc
.....
四、状态栏状态栏显示系统信息和对用户的提示,如:系统日期、软件版本、光标的当前位置、
键盘的状态等。一般在窗口的底部。
1.建立状态栏可插入图象显示的文本样式
8.5 RichTextBox控件
RichTextBox控件可以输入和编辑文本,还可以实现多种文字格式、段落等的设置,还可以插入图形的功能,可真正构成一个象 Word一样的字处理软件。
选择,Microsoft Rich TextBox Controls 6.0”将控件添加到工具箱。
1.文件操作方法
( 1) LoadFile方法
LoadFile方法能够将 RTF文件或文本文件装入控件,其形式如下:
对象,LoadFile 文件标识符 [,文件类型 ]
文件类型,0或 rtfRTF为 RTF文件(缺省); 1或 rtfTEXT为文本文件
( 2) SaveFile方法
SaveFile方法将控件中的文档保存为 RTF文件或文本文件,其形式:
对象,SaveFile(文件标识符 [,文件类型 ])
2.常用格式化属性格式化属性,可对该控件中选中的任何部分的文本使用不同的格式。
分类 属性 值类型 说明选中文本 S e l T e x t S e l S t a rt S e l L e n g t h 意义同 T e x t 控件对应属性字体、字号 S e l F o n t Na m e S e l F o n t S i z e 同上字型
S e l Bo l d S e l It a l i c
S e l Un d e rl i n e S e l S t ri k e t h ru
逻辑量粗体 斜体下划线 删除线上、下标 S e l Ch a rOf f se t 整型
>0 上标 <0 下标以 T w i p 为单位颜色 S e l Co l o r 整型缩排
S e l I n d e n t el R i g h t I n d e n t
S e l Ha n g i n g I n d e n t
数值型 缩排单位以 S c a l M o d e 决定对齐方式 S e l A l i g n m e n t 整型 0 左 1 右 2 中
3.应用例 8.8
字号、字型和对齐
4.插入图象在 RichTextBox控件中可插入 (*.bmp)的图象文件,形式如下:
对象,OLEObjects.Add [索引 ],[关键字 ],文件标识符其中,OLEObjects是集合,包含一组添加到 RichTextBox控件的对象;
索引和关键字表示添加的元素编号和标识,可省,但逗号不能省。
例如,RichTextBox1.OLEObjects.Add,,"c:\windows\circles.bmp"
8.5应用程序向导是方便的程序生成器,用来生成一个应用程序的界面。
选择,文件 /新建工程,命令,在其对话框选中,VB应用程序向导,。
1.选择操作界面,有三种:
2.选取菜单和菜单项向导提供了文件、编辑、视图、工具、窗口、帮助六个菜单名,每个菜单名下有若干个菜单项。用户可自由地选取、取消菜单名或菜单项。
3.选取工具栏按钮提供的工具栏有 13个按钮。用户也可根据需要增加(右移所选按钮)或删除(左移所选按钮)按钮。