Download presentation
Presentation is loading. Please wait.
Published byJohan Tedja Modified 5年之前
1
第8章 菜单及窗体的设计 8.1 菜单 8.2 对话框 8.3 工具栏 8.4 状态栏 8.5 多重窗体与MDI窗体 8.6 键盘和鼠标
2
8.1 菜单 菜单有两种:下拉式菜单和弹出式菜单。 下拉式菜单的组成结构: 菜单中的所有菜单项都与命令按钮相似,有属性、方法和事件
菜单名 子菜单项 分隔条 快捷键 热键 菜单中的所有菜单项都与命令按钮相似,有属性、方法和事件 为菜单项编写程序就是编写Click事件过程
3
8.1.1 菜单编辑器的使用 可以使用以下四种方式进入菜单编辑器: (1)在窗体环境下单击菜单命令“工具|菜单编辑器”
(2)使用热键Ctrl+E。 (3)单击常用工具栏中的“菜单编辑器”按钮。 (4)在要建立菜单的窗体上单击鼠标右键,在弹出的快捷菜单中选择“菜单编辑器”命令。
4
8.1.1 菜单编辑器的使用 标题(Caption)----应用程序菜单上出现的菜单名称 名称(Name)----用于在程序中引用该菜单项
命令名称 Name 必须填写 快捷键 Shortcut 菜单项是否可操作 菜单项是否可见 标题(Caption)----应用程序菜单上出现的菜单名称 名称(Name)----用于在程序中引用该菜单项 分隔菜单项:在“标题”中输入“-”(减号)
5
热键与快捷键 可通过键盘来访问菜单项 热键 使用Alt键和菜单项标题中的一个字符打开菜单 在字符前加一个&符号构成热键
【举例】在“标题”中输入“文件(&F)”,则菜单显示“文件(F)”,F为热键 快捷键 与热键类似,只是它不是用来打开菜单,而是直接执行相应菜单项的操作 在菜单编辑器中打开快捷键下拉式列表框设置 本章目录
6
8.1.2 下拉式菜单 例8.1 仿照Windows附件中的“记事本”,创建下拉式“文件”菜单,如图8.3所示。
图8.3 例8.1下拉式菜单窗体
7
8.1.3 弹出式菜单 用户在某个对象上单击右键所弹出的菜单,显示位置取决于单击鼠标时的位置;
设计过程与普通菜单相同,需要在“菜单编辑器”内不选中“可见复选框” 显示弹出式菜单的方法: [对象].PopupMenu 菜单名[,标志,x, y] x, y是快捷菜单显示的位置 标志,表示弹出的位置和触发的键 0---弹出快捷菜单在鼠标右侧 4---弹出快捷菜单在鼠标中间 8---弹出菜单在鼠标左侧 使用MouseDown事件弹出菜单 Button=1(单击鼠标左键) Button=2(单击鼠标右键) Sub Text1_MouseDown(Button As Interger) If Button = 2 Then PopupMenu EditMenu End Sub
8
8.1.3 弹出式菜单 例8.2 设计一个如图8.5所示的窗体,窗体上有4个标签、2个文本框以及菜单。2个文本框用于输入数据,Label4标签用于显示运算结果;“加减运算”菜单能够完成加减运算以及清除功能;弹出式菜单“乘除运算”能够完成乘除运算。 图8.5 例8.2运行效果图
9
8.2 对话框 预定义对话框 自定义对话框 通用对话框 可以调用函数直接显示的系统定义对话框;
InputBox()函数和MsgBox()函数; 自定义对话框 用户根据应用程序的需要自行定义的对话框; 通用对话框 打开、另存为、颜色、字体、打印、帮助
10
通用对话框控件(CommonDialog)
利用通用对话框控件可在窗体上创建通用对话框 通用对话框不是标准控件,是一种ActiveX控件 工程|部件|控件选项卡|Microsoft Common Dialog Control 6.0 通用对话框在运行时不显示,直到用Action属性或Show方法激活 通用对话框仅用于应用程序与用户之间进行信息交互,是输入输出的界面 不能真正实现文件打开、文件存储、设置颜色、字体设置、打印等操作 如果想要实现这些功能,需要编程实现 本章目录
11
通用对话框的基本属性和方法 对话框的类型 Action属性值 方法 表8.5 CancelError属性
打开对话框 另存为对话框 颜色对话框 字体对话框 打印机对话框 帮助对话框 ………… ShowOpen ………… ShowSave ………… ShowColor ………… ShowFont ………… ShowPrinter ………… ShowHelp 表8.5 CancelError属性 True:单击取消按钮,Err.Number设置为32755(cdCancel) False:单击取消按钮,没有错误警告 属性页对话框 【举例】显示“打开”对话框 CommonDialog1.Action=1 CommonDialog1.ShowOpen
12
8.2.1 “打开”对话框 由 ShowOpen方法来显示 重要属性 : (1) FileName 文件名称,包含路径
“打开”对话框 由 ShowOpen方法来显示 重要属性 : (1) FileName 文件名称,包含路径 (2) FileTitle 文件标题,不包含路径 (3) Filter 过滤器,确定文件列表框中所显示文件的类型 显示文本文件和所有文件:Text Files|*.txt|所有文件|*.* (4) FilterIndex 过滤器索引,文件列表中指定某类型文件 (5) InitDir 初始化路径,指定“打开”对话框中的初始目录
13
【举例】通过打开对话框,选择一个BMP位图文件,在图片框中显示该图片。
FileName=“*.Bmp” .InitDir=“C:\Windows” .Filter=“Pictures(*.Bmp)|*.Bmp|All Files(*.*)|*.*” .FilterIndex=1 CommonDialog1. DialogTitle=“浏览图片” Private Sub Command1_Click() CommonDialog1.ShowOpen Picture1.Picture = LoadPicture(CommonDialog1.FileName) End Sub 本章目录
14
8.2.2 “另存为”对话框 与打开文件对话框的属性基本相同,特有的属性是DefaultExt属性,用于设置缺省的扩展名
“另存为”对话框 Commondialog1.Action=2或者Commondialog1.ShowSave 与打开文件对话框的属性基本相同,特有的属性是DefaultExt属性,用于设置缺省的扩展名 “另存为”对话框并不能真正地保存文件,保存文件的操作需要单独编程来完成。 【举例】 Sub Command2_Click () CommonDialog1.FileName=“Default.Txt” CommonDialog1.DefaultExt=“Txt” CommonDialog1.Action=2 Open CommonDialog1.filename For Output As #1 Print #1, Text1.Text '保存文件 Close # ' 关闭文件 End Sub 本章目录
15
8.2.3 “颜色”对话框 重要属性Color,它返回或设置选定的颜色 【举例】 Sub Command3_Click ()
“颜色”对话框 Commondialog1Action=3或者Commondialog1.ShowColor 重要属性Color,它返回或设置选定的颜色 【举例】 Sub Command3_Click () CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color End Sub 设置文件框前景颜色 本章目录
16
8.2.4 字体对话框 Font 获取选择的字体 Color 选定的颜色
设置Action=4或者Commondialog1.ShowFont 在选择字体前,必须先设置flags属性,该属性通知commondialog控件是否显示屏幕字体、打印机字体或者两者皆有之。 Flags属性的设置 Font 获取选择的字体 Color 选定的颜色 Flags值 对应的功能 1 显示屏幕字体 2 显示打印机字体 3 显示打印机字体和屏幕字体 256 在“字体”对话框显示删除线和下划线复选框以及颜色组合框
17
Private Sub cmdFont_Click()
CommonDialog1.Flags = 1+256 CommonDialog1.ShowFont Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize Text1.FontBold = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline End Sub
18
8.2.5 打印对话框(略) 主要属性: Copies:打印份数 FromPage:打印起始页号 ToPage:打印终止页号
打印对话框(略) CommonDialog1.Action=5或者CommonDialog1.ShowPrinter 主要属性: Copies:打印份数 FromPage:打印起始页号 ToPage:打印终止页号 Max属性和Min属性 用来限制FromPage和ToPage的范围。 Min指定所允许的起始页码,Max指定所允许的最后页面 Falgs属性 该属性用来设置默认打印页面范围
19
8.3 工具栏(略) ToolBar控件和ImageList控件通常绑定使用,使用前必须先添加到工具箱中;
执行菜单命令“工具|部件”,在“部件”对话框中选中“Microsoft Windows Common Controls 6.0”,可将其添加到工具箱中; 创建工具栏的步骤如下: (1) 在ImageList控件中添加所需的图像。 (2) 在ToolBar控件中创建Button对象。并将ToolBar控件与ImageList控件建立关联。 (3) 在ButtonClick事件中使用Select Case语句对每个按钮进行相应的编程。 ToolBar控件常用的事件有: ButtonClick和ButtonMenuClick
20
例8.7 创建如图8.16所示的窗体,窗体上有一个工具栏,工具栏按钮分三组:第一组为新建、打开、存盘;第二组为剪切、复制、粘贴;第三组为加粗、倾斜、下划线。然后编写相应的事件过程代码。
图8.16 例8.7设计的工具栏效果图
21
8.4 状态栏(略) 状态栏(StatusBar)控件与工具栏(ToolBar)控件同属于一个.ocx文件,因此只要添加了工具栏控件,就可以在工具箱中找到状态栏控件。 执行菜单命令“工具|部件”,在“部件”对话框中选中“Microsoft Windows Common Controls 6.0”,即可将其添加到工具箱中。 使用StatusBar控件设计状态栏的基本步骤如下: (1)在窗体上建立一个状态栏。 (2)设置StatusBar控件的“属性页”对话框中的各项属性。 (3)编写代码。
22
例8.8 在例8.7的基础上在窗体上添加一个文本框,让其MultiLine属性值为True,ScrollBar属性值为2。在窗体的底部创建如图8.22所示的状态栏。状态栏共设置了6个窗格,它们分别显示光标位置、操作员名称、大小写控制键、系统时间。
23
8.5 多重窗体与MDI窗体 8.5.1 多重窗体 一个应用程序中有多个并列的普通窗体,每个窗体有自己的界面和代码,完成不同的功能
1. 添加窗体 工程|添加窗体 每个窗体有独立的Frm文件 同一工程不能有相同名称的窗体 2. 设置启动对象 系统默认缺省窗体名为Form1的窗体为开始窗体 工程|属性 本章目录
24
3. 窗体加载和卸载 ①加载窗体: Load 窗体名 ②卸载窗体: UnLoad 窗体名 ③显示窗体: [窗体名].Show [窗体模式]
首次用Load语句将窗体调入内存时,依次触发Initialize和Load事件 ②卸载窗体: UnLoad 窗体名 执行UnLoad语句后,将指定的窗体从内存中删除。 将窗体从内存中卸载时,触发Unload事件 UnLoad的一种常见用法是UnLoad Me,其含义是关闭窗体自己。 关键字Me代表UnLoad Me语句所在的窗体。 ③显示窗体: [窗体名].Show [窗体模式] 如果执行Show方法时,窗体不在内存中,则Show方法自动把窗体装入内存,然后再显示出来。 “窗体模式” 为0时,窗体为“非模式”方式;当取值为1时,窗体为“模式”方式。 ④隐藏窗体: [窗体名].Hide 该方法用来将指定的窗体暂时隐藏起来,但并没有从内存中删除。 “窗体名”缺省时默认为是当前窗体。
25
4. 不同窗体间数据的访问 (1)直接访问另一个窗体上的控件数据 另一个窗体名.控件名.属性 (2)访问另一个窗体中的全局变量
Text1 = Val(Form2.Text1) + Val(Form2.Text2) (2)访问另一个窗体中的全局变量 另一个窗体名.全局变量名 (3)在标准模块定义公共变量,实现相互访问 如:Public X As String 【说明】 要获得不同窗体间变量的值,该变量必须在窗体通用段声明为全局(Public)变量。局部变量不能在窗体间读取。如果全局变量的声明是在标准模块中,则可以省略“窗体名”。 本章目录
26
8.5.2 MDI窗体 1.创建和设计MDI窗体 2.创建和设计MDI子窗体 3.设置MDI窗体为启动窗体
先创建一个新的普通窗体,然后将其MDIChild属性设置为True即可。 3.设置MDI窗体为启动窗体 执行菜单命令“工程|工程1属性”,弹出“工程属性”对话框,从“启动对象”下拉列表框中选择MDI窗体名称,然后单击“确定”按钮。
27
8.5.2 MDI窗体 例8.10 创建一个具有多文档界面的简易文本编辑器,运行效果图之一如图8.26所示。
图8.26 例8.10运行效果图
28
8.6键盘和鼠标--8.6.1 键盘(略) 键盘上的键大致分为两大类 键盘事件
能够产生ASCII码的键,如大小写字母键、数字键、Enter、Backspace、Tab键等; 不能产生ASCII码的控制键,如F1~F12、方向键等。 键盘事件 (1)KeyPress事件:用户按下并且释放一个会产生ASCII码的键时被触发 Sub Form_KeyPress(KeyAscii As Integer) (2)KeyUp事件:用户释放键盘上的任意一个键时被触发。 (3)KeyDown事件:用户按下键盘上的任意一个键时被触发。 Sub Form-KeyDown(KeyCode As Integer,Shift As Integer) 参数KeyCode:按键的扫描代码 同一字符大小写,其keycode参数值与大写相同 上档和下档符号键,其keycode参数值与下档相同 小键盘上的数字键与大键盘上的数字键的keycode码不相同
29
8.6键盘和鼠标--8.6.1 键盘(略) 键盘事件过程的参数 Shift=2 按下Ctrl键 Shift=4 按下Alt键
Shift= 按下Shift键 Shift= 按下Ctrl键 Shift= 按下Alt键
30
8.6键盘和鼠标 键盘(略) 例8.12 编写一个程序,模仿Windows操作,当同时按下Alt键和F4键时关闭当前窗口。为了保证窗体优先接收到键值,应先将窗体的KeyPreview属性值设置为True。 Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF4 And Shift = 4 Then Unload Me End If End Sub
31
8.6键盘和鼠标-- 8.6.2 鼠标(略) 鼠标事件 事件过程
Click 、DblClick、MouseDown、 MouseMove 、 MouseUp 事件过程 Sub Form-MouseDown(Button as Integer,Shift As Integer, X As Single,Y As Single) 鼠标事件过程的参数 (1)Button= 鼠标左键 Button= 鼠标右键 Button= 鼠标中键 (2)Shift= 按下Shift键 Shift= 按下Ctrl键 Shift= 按下Alt键 (3)x,Y 代表当前鼠标的位置
32
8.6键盘和鼠标 鼠标(略) 例8.14 在窗体上创建两个文本框,程序运行时,在窗体上按下鼠标左键,分别显示当前鼠标指针X坐标值和Y坐标值。 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, - X As Single, Y As Single) text1.Text = X text2.Text = Y End Sub 图8.31 例8.14运行效果图
Similar presentations