




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第10章 用户界面设计1 菜单设计菜单设计 通用对话框设计通用对话框设计 工具栏设计工具栏设计 键盘与鼠标事件键盘与鼠标事件 多重窗体与多模块程序设计多重窗体与多模块程序设计本章要求:本章要求:第第1010章章 用户界面设计用户界面设计本章重点:本章重点:本章难点:本章难点: 通用对话框的使用、菜单的建立与使用通用对话框的使用、菜单的建立与使用键盘与鼠标事件键盘与鼠标事件通用对话框的使用、动态菜单、多模块设计通用对话框的使用、动态菜单、多模块设计 第10章 用户界面设计210.1 菜单设计菜单设计 Windows环境下的应用程序一般为用户提供三种菜单:环境下的应用程序一般为用户提供三种菜单:
2、窗体控制菜单窗体控制菜单、下拉菜单与快捷菜单下拉菜单与快捷菜单。 第10章 用户界面设计3一一. 启动菜单编辑器:启动菜单编辑器:有三种方法有三种方法: 1 单击工具栏菜单图标单击工具栏菜单图标 2 工具工具/菜单编辑器菜单编辑器 (CTRL+E) 3 窗体上快捷菜单窗体上快捷菜单 菜单编辑器菜单编辑器 菜单编辑器操作界面如右菜单编辑器操作界面如右所示。所示。10.1.1菜单编辑器菜单编辑器 第10章 用户界面设计4菜单编辑器介绍:菜单编辑器介绍:1. 标题标题(Caption):2. 名称名称(Name):3. 快捷键快捷键(Shortcut):4. 下一个下一个(Next):5. 和和按钮
3、按钮6. 插入插入(Insert)按钮:按钮:7. 删除删除(Delete)按钮:按钮:8 和和按钮:按钮:10. 复选复选(Checked)检查框:检查框:10. 有效有效(Enabled)检查框:检查框:11. 显示窗口列表显示窗口列表(Window List)检查框:检查框: 第10章 用户界面设计5 菜单的主要属性菜单的主要属性1. 标题标题(Caption):在窗口上显示,例如:输入:在窗口上显示,例如:输入&File,显示为:,显示为: File,热键:,热键:Alt+F 2. 名称名称(Name): 菜单项的名称,分界符也应有名称。菜单项的名称,分界符也应有名称。3. 快
4、捷键快捷键(Shortcut):下拉列表框下拉列表框4 下一个下一个(Next): 设置下一个菜单项。设置下一个菜单项。 5. 和和按钮:按钮:“” 下一级菜单项;下一级菜单项;“”上一级菜单项。上一级菜单项。6. 插入插入(Insert)按钮:按钮:插入菜单项插入菜单项7. 删除删除(Delete)按钮:按钮:删除菜单项删除菜单项8. 和和按钮:按钮:改变菜单项位置。改变菜单项位置。10. 复选复选(Checked)检查框:检查框:菜单项为选定项。菜单项为选定项。 10. 有效有效(Enabled)检查框:检查框:True:菜单项可选;:菜单项可选;False:不可选。:不可选。 11. 显
5、示窗口列表显示窗口列表(Window List)检查框:检查框: 第10章 用户界面设计61设计下拉菜单设计下拉菜单2设计子菜单或改变子菜单级别设计子菜单或改变子菜单级别 3为菜单项分组为菜单项分组 菜单名用减号菜单名用减号“-”4为菜单项指定访问键和快捷键为菜单项指定访问键和快捷键 与命令按钮设置访问键相同。与命令按钮设置访问键相同。5为菜单项加上复选标记为菜单项加上复选标记6禁止使用菜单项禁止使用菜单项 在程序代码中可以通过程序代码:在程序代码中可以通过程序代码: 菜单名菜单名.Enabled=False7菜单项的增减菜单项的增减 菜单设计的常用的几项操作:菜单设计的常用的几项操作: 第1
6、0章 用户界面设计710.1.2 下拉式菜单下拉式菜单 10.1 菜单设计菜单设计 在下拉式菜单中,一般只需要对下拉菜单的最低级菜单项编写在下拉式菜单中,一般只需要对下拉菜单的最低级菜单项编写单击事件代码,如果对一个有下级菜单的菜单项编写了单击事件,单击事件代码,如果对一个有下级菜单的菜单项编写了单击事件,则在执行下一级菜单时,该菜单程序将先执行。则在执行下一级菜单时,该菜单程序将先执行。 在下拉式菜单中,一般有一个主菜单,称为菜单栏。每个菜单在下拉式菜单中,一般有一个主菜单,称为菜单栏。每个菜单栏包括一个或多个选择项,称为菜单标题。栏包括一个或多个选择项,称为菜单标题。 菜单控件(对象)只有
7、一个事件菜单控件(对象)只有一个事件单击事件(单击事件(Click()Click())一一. 设计下拉式菜单的步骤:设计下拉式菜单的步骤:(1)(1)新建一个窗体,并设计用户界面。新建一个窗体,并设计用户界面。(2) (2) 利用菜单编辑器设计各菜单项。利用菜单编辑器设计各菜单项。(3)(3)编写每个菜单项的事件过程。编写每个菜单项的事件过程。(4)(4)运行调试各菜单命令。运行调试各菜单命令。 第10章 用户界面设计8二、下拉式菜单设计举例二、下拉式菜单设计举例【例10.1】 设计菜单程序,通过菜单控制标签中文字的字体,字型等,程序运行界面如图10.3所示。当用户选择某一菜单项时执行相应的命
8、令功能。图10.3 程序运行界面设计步骤如下:设计步骤如下:1. 界面设计在窗体上添加一个Frame1和Label1,用于显示文字信息。启动菜单编辑器,所要建立的菜单中各菜单项的属性设置如表10.1所示,菜单编辑器中各项设置如图10.4所示,对每一个菜单项输入标题、名称和选择相应的快捷键。 第10章 用户界面设计9标题标题(Caption)名称名称(Name)索引值索引值说说 明明字体字体字体字体主菜单项主菜单项1.宋体宋体 songti子菜单子菜单11 快捷键快捷键Ctrl+S.楷体楷体kaiti子菜单子菜单12 快捷键快捷键Ctrl+K.黑体黑体heiti子菜单子菜单13 快捷键快捷键Ct
9、rl+H字型字型字型字型主菜单项主菜单项2.粗体(粗体(&B) fontstyle0子菜单子菜单21 热键热键B.斜体(斜体(&I)fontstyle1子菜单子菜单22 热键热键I.下划线(下划线(&U)fontstyle2子菜单子菜单23 热键热键U表10.1 菜单项属性设置(2)编写菜单项代码)编写菜单项代码Private Sub Form_Load()Label1.FontSize = 16Label1.Caption = 长亭外古道边长亭外古道边 + Chr(13) + Chr(10) + 芳草碧连天芳草碧连天 + Chr(13) + Chr(10) + 问君此
10、去几时来问君此去几时来 + Chr(13) + Chr(10) + 来时莫徘徊来时莫徘徊End SubPrivate Sub songti_Click()Label1.FontName = 宋体宋体End SubPrivate Sub heiti_Click()Label1.FontName = 黑体黑体End SubPrivate Sub kaiti_Click()Label1.FontName = 楷体楷体_GB2312End Sub 第10章 用户界面设计10Private Sub fontstyle_Click(Index As Integer)fontstyle(Index).Che
11、cked = Not fontstyle(Index).CheckedSelect Case IndexCase 0Label1.FontBold = fontstyle(Index).CheckedCase 1Label1.FontItalic = fontstyle(Index).CheckedCase 2Label1.FontUnderline = fontstyle(Index).CheckedEnd SelectEnd Sub字型下拉菜单代码如下:字型下拉菜单代码如下: 第10章 用户界面设计11 弹出式菜单是独立于菜单栏显示在窗体或指定控件上的浮动菜单,菜单弹出式菜单是独立于菜单栏
12、显示在窗体或指定控件上的浮动菜单,菜单的显示位置与鼠标当前位置有关。实现步骤如下:的显示位置与鼠标当前位置有关。实现步骤如下: 1. 在菜单编辑器中建立该菜单。在菜单编辑器中建立该菜单。 2.设置其顶层菜单项(主菜单项)的设置其顶层菜单项(主菜单项)的Visible属性为属性为False(不可见)。(不可见)。 3.在窗体或控件的在窗体或控件的MouseUp或或MouseDown事件中调用事件中调用PopupMenu方法显方法显示该菜单。示该菜单。PopupMenu的使用方法为:的使用方法为: PopupMenu ,flags,x,y,Boldcommand10.1.3 弹出式菜单弹出式菜单
13、其中:其中: 关键字关键字“PopupMenuPopupMenu”可以前置窗体名称,但不可前置其他控件名可以前置窗体名称,但不可前置其他控件名称。称。 是指通过菜单编辑器设计的、至少有一个子菜单项的菜是指通过菜单编辑器设计的、至少有一个子菜单项的菜单名称(单名称(Name)。)。 Flags参数为常数,用来定义显示位置与行为参数为常数,用来定义显示位置与行为, ,其取值见表其取值见表10.210.2 第10章 用户界面设计12位置常数位置常数值值描述描述vbPopupMenuLeftAlign 0缺省值。弹出式菜单的左边定位于缺省值。弹出式菜单的左边定位于 x。vbPopupMenuCente
14、rAlign 4弹出式菜单以弹出式菜单以 x为居中心。为居中心。vbPopupMenuRightAlign 8弹出式菜单的右边定位于弹出式菜单的右边定位于 x。行为常数行为常数值值描述描述vbPopupMenuLeftButton 0缺省值。缺省值。 仅当使用鼠标右键单击时,仅当使用鼠标右键单击时, 弹出式弹出式菜单中的项目才响应鼠标单击。菜单中的项目才响应鼠标单击。vbPopupMenuRightButton 2弹出式菜单中的项目可接受左、右键单击。弹出式菜单中的项目可接受左、右键单击。10.1.3 弹出式弹出式菜单设计菜单设计表表10.2 flags参数值表参数值表Boldcommand参
15、数设置菜单项可以粗体显示。参数设置菜单项可以粗体显示。一般的弹出式菜单是在右击时弹出,所以PopupMenu方法一般是放在对象的MouseDown事件过程中,根据按下的是鼠标左键还是右键来决定是否弹出菜单。 第10章 用户界面设计13例10.2】 为【例10.1】添加一个标签的弹出式菜单,该菜单包含有“10”、“12”和“14”3个菜单项,如图10.5所示。单击相应的菜单项后可以改变标签中文字的字体大小。弹出式式菜单设计举例弹出式式菜单设计举例图10.5 弹出式菜单Private Sub Label1_MouseDown(Button As Integer, Shift As Integer,
16、 X As Single, Y As Single)If Button = 2 Then 按下鼠标右键Form1.PopupMenu fsize, 4 Or 2End IfEnd subPrivate Sub size_Click(Index As Integer)Select Case IndexCase 0Label1.fontsize = 10Case 1Label1.fontsize = 12Case 2Label1.fontsize = 14End SelectEnd sub 第10章 用户界面设计14用用“菜单编辑器菜单编辑器”对话框创建好的菜单,在程序运行过程对话框创建好的菜单,
17、在程序运行过程中并非就一成不变。用户可以根据实际运行情况动态地调整和中并非就一成不变。用户可以根据实际运行情况动态地调整和控制菜单的使用,给菜单增加一些灵活性。如当某菜单项执行控制菜单的使用,给菜单增加一些灵活性。如当某菜单项执行的操作不适合当前环境时,可以暂时使其失效或将其隐藏起来。的操作不适合当前环境时,可以暂时使其失效或将其隐藏起来。当需要时也可以添加或删除某菜单项。当需要时也可以添加或删除某菜单项。隐藏或显示菜单项并不能真正地改变菜单的数量,要使菜隐藏或显示菜单项并不能真正地改变菜单的数量,要使菜单项真正地、动态地增减(从内存中),则必须使用菜单控件单项真正地、动态地增减(从内存中),
18、则必须使用菜单控件数组实现。运行时通过数组实现。运行时通过Load语句增加新的菜单控件,使用语句增加新的菜单控件,使用UnLoad语句将其删除。语句将其删除。10.1.4 动态菜单动态菜单Load 控件数组名(index) Unload 控件数组名(index) 第10章 用户界面设计1510.1. 4 动态菜单动态菜单【例例10.3】 设计如下程序,当文本框中没有任何文字时,设计如下程序,当文本框中没有任何文字时,“字体大小字体大小”菜单中的各项均变为灰色显示,表示当前不可用;当用户在文本框中输菜单中的各项均变为灰色显示,表示当前不可用;当用户在文本框中输入了文字后选择某菜单项后,可将文字大
19、小设为对应值并在当前菜单项入了文字后选择某菜单项后,可将文字大小设为对应值并在当前菜单项的前面加一个的前面加一个“”,如图,如图10.6(a)、图)、图10.6(b)所示。如果用户选择)所示。如果用户选择了了“14”菜单项,则菜单项,则“10”菜单项将隐藏,并且添加菜单项菜单项将隐藏,并且添加菜单项“16”,其,其功能与其他菜单项相同,当用户重新选择了功能与其他菜单项相同,当用户重新选择了“12”菜单项时,菜单项时,“16”菜菜单项将被删除,并恢复菜单项单项将被删除,并恢复菜单项“10”的可见性,即文字字号最大值为的可见性,即文字字号最大值为16,最小为最小为10,菜单中只能同时存在三个选项,
20、如图,菜单中只能同时存在三个选项,如图10.6(c)、图)、图10.6(d)所示。所示。图10.6 动态修改菜单示例(b)(c)(d)(a) 第10章 用户界面设计1610.2 通用对话框工程工程/部件部件 选定控件标签选定控件标签选定选定Microsoft CommDialog Control 6.0 CommonDialog控件不是标准控件,是一种ActiveX控件,位于Microsoft Common Dialog Control 6.0部件中。确定确定通用对话框图标 第10章 用户界面设计1710.2.1 通用对话框的基本属性和方法通用对话框的基本属性和方法CommonDialog控件
21、的基本属性控件的基本属性(1) Action属性属性: 该属性决定打开何种类型的标准对话框,其取值如表10.4所示。该属性不能在属性窗口中设置,只能在程序中赋值。表10.4 打开通用对话框的方法与Action属性设置类型Action属性方法无对话框0“打开”对话框1ShowOpen“另存为”对话框2ShowSave“颜色”对话框3ShowColor“字体”对话框4ShowFont“打印”对话框5ShowPrinter“帮助”对话框6ShowHelp 第10章 用户界面设计18(2)Name属性属性:CommonDialog控件的名称属性。(3)CancelError属性属性:多数对话框都有“取
22、消”按钮,用于向应用程序表示用户想取消当前操作。CancelError属性的作用是向应用程序报告用户取消当前的操作,通过一个错误报告给应用程序。如果该属性设置为True,在程序的运行阶段,用户选择“取消”操作时,出现错误提示。默认是False,不出现错误提示。对话框打开后,为了防止用户没有输入任何信息便使用取消操作,则可用此属性设置出错警告。(4)Flags属性:属性:用于设置对话框外观及工作方式。对于每种对话框都有许多不同的设置值。 在通用对话框的使用过程中,每种对话框都有自己的特殊属性。CommonDialog控件的属性可以在属性窗口中设置,也可在其“属性页”对话框中设置。在窗体中的Com
23、monDialog控件上右击,在弹出的快捷菜单中选择“属性”命令,打开“属性页”对话框,该对话框中有五个选项卡,分别可对不同类型的标准对话框设置属性。 第10章 用户界面设计19FilterIndexDefaultExtDialogTiltleFileName InitDirFilter 在设计时,可以通过属性窗口设置通用对话框的属性设置控件属性,也可以使在设计时,可以通过属性窗口设置通用对话框的属性设置控件属性,也可以使用通用对话框的属性页设置相关属性。用通用对话框的属性页设置相关属性。 2CommonDialog控件的方法控件的方法在程序中要使用在程序中要使用CommonDialog控件的
24、标准对话框,除了使用控件的标准对话框,除了使用CommonDialog控控件的件的Action属性设置对话框的类型外,还可以使用属性设置对话框的类型外,还可以使用CommonDialog控件的方法。这些控件的方法。这些方法方法如表如表10.4所示。所示。例如:例如:CommonDialog1.Action=1或者或者CommonDialog1.ShowOpen 第10章 用户界面设计20 10.2.2 “打开打开” 对话框对话框vCancelError:返回或设置一个值,该值指示当单击:返回或设置一个值,该值指示当单击“取消取消”按钮时是否出错。按钮时是否出错。vDefaultExt:用于设置
25、或返回对话框默认的文件扩展名。该:用于设置或返回对话框默认的文件扩展名。该属性值是一个文件扩展名字符串,如属性值是一个文件扩展名字符串,如“*.txt”、“*.doc”等。等。当保存一个没有指定扩展名的文件时,系统自动添加默认扩当保存一个没有指定扩展名的文件时,系统自动添加默认扩展名。展名。vDialogTitle:返回或设置对话框的标题。:返回或设置对话框的标题。vFilename:返回或设置用户所选择的文件的完整路径和文件:返回或设置用户所选择的文件的完整路径和文件名称。名称。vFileTitle:返回用户选择文件的文件名称,包括扩展名,但:返回用户选择文件的文件名称,包括扩展名,但不包括
26、路径。不包括路径。 使用通用对话框控件的使用通用对话框控件的ShowOpen方法,或将方法,或将Action属性赋值为属性赋值为1,可以在运行时显示,可以在运行时显示“打开打开”对话框。需要设置以下属性:对话框。需要设置以下属性: 第10章 用户界面设计216. Filter:设置或返回在对话框的文件类型列表框中所显示文件类型。:设置或返回在对话框的文件类型列表框中所显示文件类型。该属性值可以是一组元素或用该属性值可以是一组元素或用“|”符号分开的分别表示不同类型符号分开的分别表示不同类型文件的多组元素组成。例如,如果要在文件的多组元素组成。例如,如果要在“文件类型文件类型”列表框中显列表框中
27、显示下列三种文件类型以供用户选择。示下列三种文件类型以供用户选择。WORD文档文档(*.DOC) 扩展名为扩展名为DOC的的Word文件文件文本文件文本文件(*.TXT) 扩展名为扩展名为TXT的文本文件的文本文件All Files(*.*) 所有文件所有文件那么那么Filter属性就应该设为:属性就应该设为: WORD文档文档(*.doc)|*.doc|文本文件文本文件(*.txt)|*.txt|所有文件所有文件|*.*7. FilterIndex:返回或设置:返回或设置“打开打开”或或“另存为另存为”对话框中一个默对话框中一个默认的过滤器。认的过滤器。8. InitDir:返回或设置:返回
28、或设置“打开打开”对话框中的初始目录。对话框中的初始目录。9. MaxFileSize:返回或设置使用:返回或设置使用 CommonDialog 控件时,被打开的控件时,被打开的文件名的最大尺寸。文件名的最大尺寸。10.2.2 “打开打开” 对话框对话框上述属性若在程序中设置,都必须放在使用上述属性若在程序中设置,都必须放在使用Action属性或属性或ShowOPen和和ShowSave方法调用的方法调用的“打开打开”或或“另存为另存为”对话框语句之前。否则起不到其功能对话框语句之前。否则起不到其功能 第10章 用户界面设计22 【例10.4】 编写一个简单的文本文件编辑程序,如图编写一个简单
29、的文本文件编辑程序,如图10.9所示,文件的内所示,文件的内容显示在上面的文本框中。从左到右共容显示在上面的文本框中。从左到右共6个命令按钮依次按约定命名。下面个命令按钮依次按约定命名。下面列出了列出了Command1事件过程的程序代码,其他的事件过程在以后的各节中分事件过程的程序代码,其他的事件过程在以后的各节中分别给出。别给出。10.2.2 “打开打开” 对话框对话框图10.9 通用对话框示例 第10章 用户界面设计23程序运行时,当CommonDialog控件的Action属性为2或者调用ShowSave方法时,系统就会弹出“另存为”对话框,它为用户在存储文件时提供了一个标准的用户界面。
30、实际上“另存为”对话框和“打开”对话框涉及的属性基本一样,独有一个属性DefaultExt,表示默认扩展名。10.2.3 “另存为另存为” 对话框对话框【例10.5】 为例10.4中的“另存为”命令按钮(Command2)编写事件过程,把文本框(Text1)中的内容写入一个文本文件。 第10章 用户界面设计24颜色对话框是当颜色对话框是当Action值为值为3时或者调用时或者调用ShowColor方法时,系统就会弹出方法时,系统就会弹出“颜色颜色”对话框,为用户提供了对话框,为用户提供了颜色选择器,如右图。颜色选择器,如右图。 重要属性重要属性 Color:用来返回或设置选定的颜色。用来返回或
31、设置选定的颜色。 10.2.4 “颜色颜色”对话框对话框【例例10.6】 为例为例10.4中的中的“颜色颜色”命令按钮命令按钮(Command3)编写事件过程,用编写事件过程,用“颜色颜色”对话框设对话框设置文本框的前景颜色。置文本框的前景颜色。“颜色颜色”按钮的单击事件过程如下:按钮的单击事件过程如下:Private Sub Command3_Click() CommonDialog1.Action=3 Text1.ForeColor=CommonDialog1.ColorEnd Sub 第10章 用户界面设计2510.2.5 “字体字体”对话框对话框 字体对话框是字体对话框是Action为
32、为4时时的通用对话框,如下图所示,提供的通用对话框,如下图所示,提供用户选择字体、字号及字体样式等。用户选择字体、字号及字体样式等。字体对话框重要的属性有:字体对话框重要的属性有:Color, FontName, FontSize, FontBold FontItalic , FontStrikethru, FontUnderline, Max等等. FontName FontBold、FontItalicFontSizeFontStrikethruFontUnderline ColorMin、Max 第10章 用户界面设计26Flags属性:属性:设置所显示的字体类型,设置所显示的字体类型,
33、数据类型为数据类型为Long。 注意注意 在显示在显示“字体字体”对话框前,必须先将对话框前,必须先将 Flags 属性设置为属性设置为 cdlCFScreenFonts,cdlCFPrinterFonts,或,或cdcdlCFBoth。否则,会发生字体。否则,会发生字体不存在的错误。不存在的错误。“字体”对话框的Flags属性设置值系统常数值说明cdlCFScreenFonts&H1显示屏幕字体cdlCFPrinterFonts&H2显示打印机字体cdlCFBoth&H3显示打印机和屏幕字体cdlCFEffects&H100在“字体”对话框中显示删除线和下划线
34、以及颜色组合框10.2.5 “字体字体”对话框对话框 第10章 用户界面设计27【例例10.7】 为例为例10.4中的中的“字体字体”命令按钮命令按钮(Command4)编编写事件过程,设置文本框的字体。写事件过程,设置文本框的字体。“字体”按钮的单击事件过程如下:Private Sub Command4_Click() CommonDialog1.Flags = cdlCFScreenFonts Or cdlCFEffects CommonDialog1.Max = 100 CommonDialog1.Min = 1 CommonDialog1.ShowFont CommonDialog1.
35、Action =4 Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize Text1.FontBold = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = Common
36、Dialog1.ColorEnd Sub 第10章 用户界面设计28程序运行时,当程序运行时,当CommonDialog控件的控件的Action属性为属性为5或者调用或者调用ShowPrinter方法时,系统就会弹出方法时,系统就会弹出“打印打印”对话框,它是一个设置选择对话框,它是一个设置选择打印参数的界面,如图打印参数的界面,如图10.12所示。所示。 10.2.6 “打印打印”对话框对话框 图10.12 “打印”对话框重要属性:重要属性:Copies:返回或设置需要打印的份数。Max、Min:返回或设置打印范围允许的最大和最小值。1. FromPage、ToPage:返回或设置起始页号和
37、终止页号。当 cdlPDPageNums标志被设置时才有效。 第10章 用户界面设计29【例例10.8】 为例为例10.4中的中的“打印打印”命令按钮命令按钮(Command5)编编写事件过程,用写事件过程,用“打印打印”对话框打印文本框(对话框打印文本框(Text1)中的内)中的内容。容。“打印打印”按钮的单击事件过程如下:按钮的单击事件过程如下:Private Sub Command5_Click() Dim i As Integer CommonDialog1.ShowPrinter CommonDialog1.Action =5 For i = 1 To CommonDialog1.C
38、opies Printer.Print Text1.Text Next i Printer.EndDoc 结束打印结束打印End Sub 第10章 用户界面设计3010.2.7 “帮助帮助”对话框对话框程序运行时,当CommonDialog控件的Action属性为6或者调用ShowHelp方法时,系统就会弹出“帮助”对话框,它可以为用户制作应用程序的联机帮助。“帮助”对话框本身不能建立应用程序的帮助文件,它只能将已建好的帮助文件从磁盘中提取出来,并与界面建立连接,从而达到显示并检索帮助信息的目的。使用ShowHelp方法前,必须将CommonDialog控件的HelpFile和HelpComm
39、and属性设置为与其相应的一个常数或值,否则,Winhlp32.exe就不能显示帮助文件。对于“帮助”对话框,有以下几个重要属性:HelpCommand:返回或设置需要的联机帮助的类型。具体设置请参阅VB帮助系统HelpFile:确定Microsoft Windows Help文件的路径和文件名,应用程序使用这个文件显示Help或联机文档。HelpKey:返回或设置标识请求的帮助主题的关键字。HelpContext:该属性与HelpCommand属性一起使用(设置HelpCommand=cdlHelpContext),返回或设置请求的帮助主题的上下文 ID以指定要显示的帮助主题。 第10章 用
40、户界面设计31【例例10.9】 为例为例10.4中的中的“帮助帮助”命令按钮命令按钮(Command6)编编写事件过程,通过写事件过程,通过“帮助帮助”对话框来显示记事本程序的帮助对话框来显示记事本程序的帮助文件。文件。“帮助帮助”按钮的单击事件过程如下:按钮的单击事件过程如下:Private Sub Command6_Click() CommonDialog1.HelpCommand = cdlHelpContents CommonDialog1.HelpFile = c:windowshelpnotepad.hlp CommonDialog1.ShowHelp End Sub 第10章 用
41、户界面设计32工具栏的制作有两种方法:工具栏的制作有两种方法:1. 是使用命令按钮和图形框来手工制作是使用命令按钮和图形框来手工制作2. 使用使用ToolBar控件和控件和ImageList控件来制作。控件来制作。前一种方法比较繁琐,较少使用。后一种方前一种方法比较繁琐,较少使用。后一种方法较容易,在法较容易,在VB中常用后一种方法。中常用后一种方法。ToolBar控件和控件和ImageList控件并没有在工具箱里,属于控件并没有在工具箱里,属于ActiveX控件,需要为工程加载控件,需要为工程加载“Microsoft Windows Common Controls 6.0”控件。加载成控件。
42、加载成功后控件工具栏如图功后控件工具栏如图10.13所示。所示。10.3 工具栏工具栏 ImageList图 10.13 添加控件成功后的工具箱ToolBar 第10章 用户界面设计33ImageList控件不单独使用,专门为其它控件提供图像库控件不单独使用,专门为其它控件提供图像库.使用方法如下:使用方法如下:在窗体中添加一个在窗体中添加一个ImageList控控件。其大小固定,运行时不可见。件。其大小固定,运行时不可见。右击右击ImageList控件,选择控件,选择“属属性性”,打开,打开“属性页属性页”对话框,如对话框,如图所示。图所示。1. 选择选择“图像图像”选项卡,单击选项卡,单击
43、“插入图片插入图片”按钮,逐个向按钮,逐个向ImageList控件中加入图片;如果控件中加入图片;如果需要删除多余的图片,选中后点需要删除多余的图片,选中后点击击“删除图片删除图片”按钮。按钮。10.3.1 ImageList控件控件 第10章 用户界面设计34使用使用ToolBar控件具体创建一个工具栏,首先在窗体中添加一个控件具体创建一个工具栏,首先在窗体中添加一个ToolBar控件,设置控件,设置ToolBar控件的控件的Align属性以控制工具栏在窗体中的位置。右击选属性以控制工具栏在窗体中的位置。右击选择择“属性属性”,打开,打开“属性页属性页”对话框。对话框。10.3.2 Tool
44、Bar控件控件1. 设置设置ToolBar控件中的按钮控件中的按钮点击点击“按钮按钮”选项卡,如图所示。选项卡,如图所示。单击单击“插入按钮插入按钮”和和“删除按钮删除按钮”,可,可以增加或减少工具栏中的按钮;每个按钮需以增加或减少工具栏中的按钮;每个按钮需要使用要使用ImageList控件中的哪个图片作为外控件中的哪个图片作为外观显示,在观显示,在“图像图像”中进行设置;中进行设置;“关键字关键字”用于在程序代码中引用该按钮。用于在程序代码中引用该按钮。“标题标题”与与“描述描述”文本框中是在按钮文本框中是在按钮上显示的文字及按钮的说明信息。上显示的文字及按钮的说明信息。在在“值值”下拉列表
45、中可以设置按钮的状下拉列表中可以设置按钮的状态:态:0-tbrUnpressed为弹起状态为弹起状态 1-tbrPressed为按下状态。为按下状态。图10.15“属性页”中“按钮”选项卡 第10章 用户界面设计350-tbrDefault: 普通(默认的)按钮。普通(默认的)按钮。1-tbrCheck:复选框按钮。具有按下、放开两种状态。:复选框按钮。具有按下、放开两种状态。2-tbrButtonGroup:单选按钮:单选按钮3-tbrSeparator:分隔符。表示将不同组或不同类的按钮分开,:分隔符。表示将不同组或不同类的按钮分开,如单选按钮。如单选按钮。4-tbrPlaceholder
46、: 占位符。占位符。 5-thrDropdown: 下拉式按钮。可以建立下拉式菜单。下拉式按钮。可以建立下拉式菜单。10.3.2 ToolBar控件控件图10.15“属性页”中“按钮”选项卡在在“样式样式”下拉列表中可以设置按下拉列表中可以设置按钮的行为特点,并且将影响按钮的功能。钮的行为特点,并且将影响按钮的功能。具有六种类型:具有六种类型: 第10章 用户界面设计362. 设置设置ToolBar控件的通用属性,和控件的通用属性,和ImageList控件建立关控件建立关联。联。打开打开“通用通用”选项卡,在图像列表选项中选择图像列表控选项卡,在图像列表选项中选择图像列表控件名件名ImageL
47、ist1,这样就建立了工具栏控件与图像列表控件的,这样就建立了工具栏控件与图像列表控件的关联。关联。在程序运行时,下述代码也可建立工具栏控件与图像列表在程序运行时,下述代码也可建立工具栏控件与图像列表控件的关联:控件的关联: Private Sub Form_Load()Toolbar1.ImageList = ImageList1End Sub一旦工具栏控件与图像列表控件建立了关联,一旦工具栏控件与图像列表控件建立了关联,ToolBar控控件件“属性页属性页”对话框的对话框的“按钮按钮”选项卡中的选项卡中的“图像图像”选项即选项即变为有效。只需在其中输入图像库中图像的索引号即可将对变为有效。
48、只需在其中输入图像库中图像的索引号即可将对应的图片添加到按钮上。应的图片添加到按钮上。10.3.2 ToolBar控件控件 第10章 用户界面设计373. 响应响应ToolBar控件事件控件事件 ToolBar控件常用的事件有两个:控件常用的事件有两个:ButtonClick和和ButtonMenuClick。前者对按钮样式为前者对按钮样式为0-2,后者对样式为,后者对样式为5的菜单按钮。的菜单按钮。 (1)用索引)用索引Index确定按钮确定按钮 (2) 用关键字用关键字Key确定按钮确定按钮Private Sub Toolbar1_ButtonClick(Byval Button As C
49、omctlLib.Button) Select Case Button.Index Case 1 FileNewProc Case 2 FileOpenProc End SelectEnd Sub注意:第注意:第1个按钮的个按钮的Index值为值为1。用。用Index还是用还是用Key根据实际需要,根据实际需要,Key 可可读性好,可维护性好。读性好,可维护性好。Select Case Button.Key Case TNew FileNewProc Case TOpen FileOpenProc . 第10章 用户界面设计38【例10.9】 创建如图所示的窗体,并创建如图所示的窗体,并编写程
50、序代码实现工具栏上各按钮的编写程序代码实现工具栏上各按钮的功能。功能。图10.16 例10.9 界面设计设计步骤如下:设计步骤如下:1. 设计界面设计界面首先在窗体上添加一个文本框,设置其首先在窗体上添加一个文本框,设置其Multiline属性为属性为True,ScrollBars属性为属性为2,添加,添加ImageList控件,该控件包含有图所示的六个图形。控件,该控件包含有图所示的六个图形。添加添加ToolBar控件,在按钮选项卡中逐个添加按钮。控件,在按钮选项卡中逐个添加按钮。各按钮属性设置如表各按钮属性设置如表10.6所示。所示。索引关键字样式图像索引1B1- tbrCheck12I1
51、- tbrCheck23U1- tbrCheck343-tbrSeparator05lt2-tbrButtonGroup46ct2-tbrButtonGroup57rt2-tbrButtonGroup6 第10章 用户界面设计39图10.16 例10.9 界面设计2. 编写程序代码编写程序代码Private Sub Form_Load() Toolbar1.ImageList = ImageList1End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Key
52、Case BText1.FontBold = Not Text1.FontBoldCase IText1.FontItalic = Not Text1.FontItalicCase UText1.FontUnderline = Not Text1.FontUnderlineCase ltText1.Alignment = 0Case ctText1.Alignment = 2Case rtText1.Alignment = 1End SelectEnd Sub 第10章 用户界面设计4010.4.1 键盘事件 在在Visual Basic中,提供中,提供KeyPress、KeyDown、Key
53、Up三种键盘事件,三种键盘事件,窗体和接受键盘输入的控件都识别这三种事件。窗体和接受键盘输入的控件都识别这三种事件。 KeyPress 按下对应某按下对应某ASCII 字符的键。字符的键。 KeyDown 按下键盘的任意键。按下键盘的任意键。 KeyUp 释放键盘的任意键释放键盘的任意键只有获得焦点的对象才能够接受键盘事件。只有获得焦点的对象才能够接受键盘事件。 1. KeyPress 事件事件在按下与在按下与ASCII字符对应的键时将触发字符对应的键时将触发KeyPress 事件。事件。 10.4键盘和鼠标事件键盘和鼠标事件 第10章 用户界面设计41KeyPress 事件过程的语法格式是:
54、事件过程的语法格式是:Sub Object_KeyPress (KeyAscii As Integer)其中:其中: Object是指窗体或控件对象名,是指窗体或控件对象名,KeyAscii 参数返参数返回对应于回对应于ASCII字符代码的整型数值。字符代码的整型数值。 例如,如果希望将文本框中的所有字符都强制转换为大例如,如果希望将文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写:写字符,则可在输入时使用此事件转换大小写:Private Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii = Asc(Ucase(Chr(
55、KeyAscii)End Sub10.4键盘和鼠标事件键盘和鼠标事件 KeyPress 事件只识别事件只识别 Enter、Tab和和Backspace 键。不能键。不能够检测其它功能键、编辑键和定位键。够检测其它功能键、编辑键和定位键。 第10章 用户界面设计42【例例10.10】 设计一个应用程序,在窗体中建设计一个应用程序,在窗体中建立一个文本框和一个标签,在文本框中限定只能立一个文本框和一个标签,在文本框中限定只能输入英文字母、空格和输入英文字母、空格和BackSpace键,当从键盘向键,当从键盘向文本框输入英文字符时,将其转换成大写字母并文本框输入英文字符时,将其转换成大写字母并显示在
56、标签中。程序运行结果如图所示。显示在标签中。程序运行结果如图所示。10.4键盘和鼠标事件键盘和鼠标事件图10.17 例10.10运行结果Private Sub Text1_KeyPress(KeyAscii As Integer)Dim char As StringSelect Case KeyAsciiCase 65 To 90, 97 To 122, 32 char = UCase(Chr(KeyAscii) Label1.Caption = Label1.Caption & char Case 8 Label1.Caption = Left(Label1.Caption, Len
57、(Label1.Caption) - 1) Case Else KeyAscii = 0End Select End Sub 第10章 用户界面设计432. KeyDown 和和 KeyUp 事件事件 当一个对象具有焦点时按下(当一个对象具有焦点时按下(KeyDown) 或松开或松开 ( KeyUp ) 一个键时发生。一个键时发生。它们报告键盘本身准确的物理状态:按下键它们报告键盘本身准确的物理状态:按下键 (KeyDown) 及松开键及松开键 (KeyUp)。 KeyDown和和KeyUp事件能够检测其它功能键、编辑键和定位键。事件能够检测其它功能键、编辑键和定位键。KeyUp 和和 Key
58、Down 事件过程的语法格式如下:事件过程的语法格式如下:Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)说明:说明:(1)KeyCode参数值是用户所操作的键的扫描代码,它告诉事件过程用参数值是用户所操作的键的扫描代码,它告诉事件过程用户所操作的物理键,例如,不管键盘处于小写状态还是大写状态,用户户所操作的物理键,例如,不管键盘处于小写状态还是大写状态,用户在键盘上按下在键盘上按下“A”健,健,KeyCode参数值相同。对
59、于有上档字符和下档参数值相同。对于有上档字符和下档字符的键,其字符的键,其KeyCode也是相同的,为下档字符的也是相同的,为下档字符的ASCII码。码。 第10章 用户界面设计44 keycode 参数通过参数通过 ASCII 值或键代码常数来识别键。字母值或键代码常数来识别键。字母键的键代码与此字母的大写字符的键的键代码与此字母的大写字符的 ASCII 值相同。所以值相同。所以 “A” 和和 “a” 的的 keycode 都是由都是由 Asc(“A”) 返回的数值。返回的数值。表表10.7 Keycode和和KeyAscii值值 第10章 用户界面设计452.KeyDown 和和 KeyU
60、p 事件事件 KeyUp 和和 KeyDown 事件过程的语法格式如下:事件过程的语法格式如下:Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)说明:说明:(2)Shift参数是一个整数,表示键盘事件发生时参数是一个整数,表示键盘事件发生时Shift、Ctrl和和Alt键的状键的状态。态。Shift是一个位域参数,由若干位组成,每个位的信息指出某一种状态是一个位域参数,由若干位组成,每个位的信息指出某一种状态是打开(用是打开(用1表示)还是关闭(用表示)还是关闭(用0表示)。其中最右侧三位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修图纸销售合同范本
- 聘任合同范本2016公示
- 公司股份赠予合同范本
- 港口美甲店转租合同范本
- 2025公司职员试用合同模板
- 电商预约合同范本
- 正规产品供货合同范本
- 产床买卖合同范本
- 2025汽车销售委托代理合同范本
- 外贸运输合同范本英文
- 2025新租房合同范本(标准)
- 新版煤矿安全规程解读
- 儿童自闭症教学方法
- 五年级下学期数学期末质量分析
- 北京市通州区2024-2025学年七年级下学期期末道德与法治试题(含答案)
- 2025年甘肃高速公路处收费人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 2025年新版节能减排生态环保知识竞赛考试题库及答案
- 2025年重庆交安考试题库及答案
- 2025年岗前安全培训试题及答案
- 2025年甘肃兰州市事业单位招考笔试《公共基础知识》题库(共50题)及答案
- 地铁站基坑施工监测方案
评论
0/150
提交评论