《可视化程序设计VB题目应用程序界面设计.ppt》由会员分享,可在线阅读,更多相关《可视化程序设计VB题目应用程序界面设计.ppt(40页珍藏版)》请在三一办公上搜索。
1、界面设计,概述 与多重窗体有关的语句和方法 多重窗体程序设计方法 MDI界面设计 标准模块与SUB MAIN过程,概述,1、标准模块,3、多重窗体设计的关键:(1)要解决不同窗体之间的衔接和窗体的显示、关闭等问题。(2)在窗体的代码中,可以使用Me关键字代表当前窗体的名称,2、类模块:如果需要共享的是一些对象,就需要将对象编码独立出来,这就是类模块。,在几个窗体中都有要执行的公共代码,为了避免在两个窗体中重复代码,就需要创建一些独立模块,用来包含这些公共代码,这就是标准模块。,与窗体有关的语句和方法,启动窗体:启动程序后自动打开并显示在屏幕上的窗体。,窗体的常用方法,1、Load语句,功能:加
2、载指定窗体,即在内存中创建该窗体,但不显示在屏幕上。语法:Load 窗体名称说明:加载窗体后,该窗体中的所有控件已经建立起来了,窗体的Load 事件已被触发,2、Unload语句 功能:卸载指定的窗体,即释放窗体所占内存。语法:Unload 窗体名称,注意:1、启动窗体的设置方法2、每个工程最多只能有一个启动窗体,3、Show方法,语法:窗体名称.Show 模式 功能:将指定的窗体显示出来。,说明:(1)如果省略了”窗体名称“,将显示当前窗体。(2)Show方法兼具有Load语句的功能,如果要显示的窗体没有加载到内存中,Show方法可以自动加载。否则,直接将已加载的窗体显示出来。(3)Show
3、方法的“模式”参数是可选的,取值为0或1。如果“模式”参数的值为1-vbModal,所显示的窗体是“模态型”的,此时,除了该窗体外其他窗体已被屏蔽,不接受键盘或鼠标操作,除非关闭该窗口,4、Hide方法 功能:隐藏指定的窗体 语法:窗体名称.Hide 说明:窗体被隐藏后并没有从内存中消失,Hide方法不会触发Unload事件。,【例】窗体的显示模式,Form1的Load事件Private Sub Form_Load()Load Form2 同时装载Form2窗体End SubForm1的Unload的事件Private Sub Form_Unload(Cancel As Integer)Unl
4、oad Form2 同时卸载Form2窗体End Sub 退出按钮的click事件Private Sub btnExit_Click()End关闭所有窗体,退出程序End Sub,模态方式显示Form2Private Sub btnModal_Click()Form2.Show 1“模态”方式显示End Sub非模态方式显示Form2Private Sub btnModaless_Click()Form2.Show“非模态”方式显示End Sub,窗体2的退出按钮Private Sub Command1_Click()Me.Hide 隐藏当前窗体End Sub,标准模块与Sub Main过程,
5、如果需要在加载任何窗体以前进行程序的初始化,可以把初始化代码放到标准模块的Sub Main过程中。注意:1、Sub Main过程必须在标准模块中建立。2、每个工程可以包含若干标准模块,但最多只能 有一个Sub Main过程。,MDI窗体ultiple Document Interface,多文档界面的应用程序至少需要两个窗体:一个MDI窗体(父窗体)和一个或若干个子窗体。在不同窗体中共用的过程和变量一般应存放在标准模块中 1.创建MDI窗体 2.创建和设计MDI子窗体多文档界面允许创建在单个容器窗体中包含多个窗体的应用程序父窗体包含多个子窗件,一个工程只能添加一个MDI,多文档界面的特性 设计
6、阶段特性子窗体是独立的,它不被限制在父窗体的区域内。即,设计阶段,子窗体、父窗体(MDI窗体)和普通窗体没区别 运行期间特性 子窗体的移动、改变大小等都被限制在其父窗体中子窗体最小化时,图标在其父窗体中显示;父窗体最小化时,其所有子窗体也被最小化。子窗体最大化时,其标题与父窗体的标题合并,显示在父窗体的标题条中。父窗体及其子窗体都可以有各自的菜单,子窗体加载时覆盖其父窗体的菜单。,例:,菜单设计,与菜单有关的概念 菜单编辑器 下拉菜单设计 弹出式菜单设计,与菜单有关的概念,早期的字符界面的应用程序,设计菜单是一项非常费力的工作。现在的应用程序具有图形用户界面(GUI),采用可视化的编程工具开发
7、,菜单设计变得轻而易举了。,菜单的形式有两种:下拉式菜单和弹出式菜单。,下拉式菜单,弹出式菜单,有关概念:1)菜单组成:标题栏、菜单标题、菜单项(可以是命令、分隔条、子菜单标题;包括标题、访问键、快捷键、复选标志)2)菜单也是一个控件、对象,具有属性、事件和方法。常用属性:Caption、Enabled、Visible、Checked;事件只有一个:Click,菜单编辑器,菜单是控件,但不能把菜单控件作为工具添加到控件箱中。,菜单编辑器的启动,(1)单击“工具”菜单下的“菜单编辑器”命令。(2)单击工具栏的“菜单编辑器”按钮。(3)在窗体的空白区域,单击鼠标右键,在快捷菜单中选择“菜单编辑器”
8、。(4)使用快捷键Ctrl+E。,菜单编辑器的使用 1、菜单属性设置区 2、菜单编辑区 3、菜单项显示区,下拉式菜单设计,下拉式菜单的设计和编程,【例】一个简单的文本编辑器程序的菜单设计。,分析:对于菜单设计的问题,需要先列出来所有的菜单标题,每个标题下的菜单项,以及各菜单项的各个属性设置。1)创建一个窗体Form1,然后打开菜单编辑器 2)根据事先列好的菜单设计列表,依次创建各菜单项 3)退出菜单编辑器,单击某个菜单项进入该菜单命令,进行click事件编程,程序代码片断:通过菜单项的属性值进行编码Private Sub mnuBig_Click()mnuSmall.Checked=False
9、 选择大号字体 mnuBig.Checked=True 取消选择 txtContent.FontSize=24 设置为大号字体End SubPrivate Sub mnuBold_Click()mnuBold.Checked=Not mnuBold.Checked 切换状态 txtContent.FontBold=mnuBold.Checked 根据菜单项的值决定是否加黑显示End Sub,Private Sub mnuItalic_Click()mnuItalic.Checked=Not mnuItalic.Checked txtContent.FontItalic=mnuItalic.Ch
10、ecked 是否斜体End SubPrivate Sub mnuKaiTi_Click()mnuSongTi.Checked=False 取消对宋体选择 mnuKaiTi.Checked=True 选择楷体 txtContent.FontName=楷体_GB2312 设置文本框的字体为楷体End SubPrivate Sub mnuSongTi_Click()mnuSongTi.Checked=True 取消对楷体选择 mnuKaiTi.Checked=False 选择宋体 txtContent.FontName=“宋体 设置文本框的字体为宋体End Sub,菜单项属性的动态设置,可以动态地设
11、置的菜单项属性包括Checked、Enabled、Visible等,1、菜单的复选标志 2、菜单的有效性,Clipboard的四个常用方法:1、settext:将文本内容送到剪贴版2、setdata:将非文本内容送到剪贴版(如图片)3、gettext:从剪贴板得到文本信息4、getdata:从剪贴板得到非文本信息,Private Sub SetEditMenu()设置编辑菜单的有效性 Dim b As Boolean b=IIf(txtContent.SelLength 0,True,False)是否有文本被选中 mnuCut.Enabled=b 如果以选中若干字符,则剪切、复制命令有效 mn
12、uCopy.Enabled=b 否则,不能进行类似操作 根据剪贴板中是否文本,决定能否实施粘贴操作 ClipBoard是系统对象,代表剪贴板,其GetText方法用于返回剪贴板上的字符 mnuPaste.Enabled=IIf(Len(Clipboard.GetText)0,True,False)End SubPrivate Sub mnuAll_Click()txtContent.SelStart=0 设置从第1个字符开始的文本被选中 txtContent.SelLength=Len(txtContent.Text)选中所有字符 SetEditMenu 设置“复制”、“剪切”菜单项,使他们有
13、效End Sub 以下过程在单击鼠标后触发Private Sub txtContent_MouseUp(Button As Integer,Shift As Integer,_ X As Single,Y As Single)SetEditMenu 判断是否选中了文本End Sub,Private Sub mnuCopy_Click()复制 Clipboard.SetText txtContent.SelText 将选中的文本复制到剪贴板上End SubPrivate Sub mnuCut_Click()剪切 Clipboard.SetText txtContent.SelText 将选中的文
14、本复制到剪贴板上 txtContent.SelText=并删除选中的文本End SubPrivate Sub mnuPaste_Click()粘贴 Dim s1 As String,s2 As String Dim loc As Integer loc=txtContent.SelStart 读取光标位置 s1=Left(txtContent.Text,loc)将剪贴板内容插入到光标处 s2=Mid(txtContent.Text,loc+1)txtContent.Text=s1&Clipboard.GetText&s2 txtContent.SelStart=loc 恢复光标位置End Su
15、b,弹出式菜单设计,1)弹出式菜单是独立于菜单栏显示在窗体上的浮动菜单。,2)创建方法:用菜单编辑器创建菜单,但Visible属性设置为False.,3)启动方法:用窗体的 PopupMenu 方法显示,PopupMenu方法的语法:,窗体名.PopupMenu 菜单名,Flags,x,y,defaultmenu,说明:(1)x,y为所弹出的菜单在窗体上的位置坐标,具体代表菜单上的哪一个点,还要看Flags参数的取值。如果省略x,y则取鼠标指针的位置。(2)Flags参数用来指定弹出式菜单的位置和行为,表一给出了指定菜单位置的Flags参数值,表二给出了表示行为的Flags参数值。如果需要同时
16、指定弹出菜单的位置和行为,可以分别选取一个参数值,再用+运算符或者OR运算符连接起来。(3)DefaultMenu参数用来指定弹出式菜单中想以粗体字体出现的菜单控件的名称。在弹出式菜单中只能有一个菜单项被加粗。,表一 菜单位置的Flags参数的值及含义,表二 菜单行为的Flags参数的值及含义,【例】文本编辑器的快捷菜单。,工具栏的设计,创建工具栏一般须遵循以下四个步骤:(1)将ImageList控件和Toolbar控件添加到工具箱中,然后添加到窗体上。(2)为窗体上的ImageList控件添加所需的图像。(3)建立ToolBar控件与ImageList控件之间的关联。(4)对ToolBar上
17、的按钮编写Click事件响应代码。,1.添加工具栏控件(1)“工程部件”,选Microsoft Windows Common Controls 6.0,(2)用 在窗体任意位置添加一个ImageList控件,名称默认为ImageList1(3)用 在窗体上添加一个Toolbar控件(该控件自动位于菜 单栏的下面),其名称默认为Toolbar1。,2.为窗体上的ImageList控件添加所需的图像右击窗体上的ImageList控件,选择“属性”命令“通用”选项卡:设置按钮大小“颜色”选项卡:设定按钮的颜色“图像”选项卡:选择要加入的图像,“图像”选项卡:选择要加入的图像,“图像”选项卡:定义“关
18、键字”(在ToolBar控件中引用的图像标识名),3.建立ToolBar控件与ImageList控件之间的关联右击窗体上的Toolbar控件,选择“属性”命令“通用”选项卡:“图像列表”选择ImageList1,“按钮”选项卡:单击“插入按钮”,工具栏第一个按钮:“索引”:自动变为1“关键字”:输入ImageList1控件中定义的相应关键字“图像”:输入“1”以此类推插入其他按钮,4.响应ToolBar控件事件单击工具栏上的某个按钮,将引发ButtonClick事件 Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.But
19、ton)End Sub根据按钮的关键字(Button.Key)或者图像值(Button.Image)可判断单击的是哪个按钮,然后通过Select Case语句进行相应的处理 例,菜单中有一个“打开”菜单命令(名称为mOpen),工具栏上有一个“打开”按钮(关键字为open,图像值为1),单击它们都执行同样的操作(执行OpenDoc过程),相应的代码如下:,Private Sub mOpen_Click()单击“打开”菜单命令 OpenDoc End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)S
20、elect Case Button.Key Case“open”或Case 1,表示单击“打开”按钮 OpenDoc End Select End Sub,“打开”按钮的关键字为open,图像值为1,状态栏的设计,1.添加状态栏控件(1)“工程部件”,选Microsoft Windows Common Controls 6.0(2)用 在窗体上添加Statusbar控件(通常位于窗体的底部)(3)设置窗格属性,“插入窗格”按钮:用于在状态栏上插入窗格,最多16个“索引”:每个窗格的编号。“文本”:样式为sbrText时,窗格中显示的文本“关键字”:用于标识窗格的字符串“样式”:设置窗格的显示状
21、态,例如,,2.程序运行时在状态栏上显示信息 设置状态栏窗格属性 状态栏控件名称.Panels(索引值)例:,Private Sub Text1_Change()StatusBar1.Panels(2).Text=Str(Len(Text1.Text)End Sub,Windows应用程序的界面样式 单文档界面样式(SDI-Single Document Interface)应用程序的主窗口内每次最多只能打开一个文档.例如,Windows的“记事本”程序就是SDI界面多文档界面样式(MDI-Multiple Document Interface)应用程序的主窗口内可打开多个文档子窗口 子窗口只能在父窗口内活动类似于资源管理器的界面 窗口通常包括两部分:左边为一个树型的或者层次型的视图,右边为内容显示区,为记事本设计菜单、工具栏、状态栏,