22
基基基基 基基基基基基基基 基基基基基基基基基基基基基基基基基基基基基基基 基基基基基基基基基基基基基基基基 基基基基基基基 基基基基基基基基基基基 基基基基基基基基基 基基基基基基 基基基基基 。、、、、 基基基基基 基基基基基基基基 基 、, Win32 基基基基 基基基基基基基基基基基基基 ,。 基基 基基基基基基基基基基基基基基基基基基基 一。

基础综合 各种对话框的建立

  • Upload
    rachel

  • View
    76

  • Download
    0

Embed Size (px)

DESCRIPTION

基础综合 各种对话框的建立. 窗口接口可以说是最友善的人和计算机间的沟通接口,然而对话框就好像是计算机和使用者之间的对话通道。开档案有开档案的方式、存盘有存盘的接口、打印机设定、字型选择、寻找字符串、置换字符串等等,在 Win32 的环境中,这类的对话框实在是太多了。在这一章我们将带领大家进入设计对话框的世界。. 大纲. 6-1 Open / Save Dialog 6-2 Open / Save PictureDialog 6-3 FontDialog 6-4 ColorDialog 6-5 PrinterDialog 6-6 PrinterSetupDialog - PowerPoint PPT Presentation

Citation preview

Page 1: 基础综合 各种对话框的建立

基础综合 各种对话框的建立

窗口接口可以说是最友善的人和计算机间的沟通接口,然而对话框就好像是计算机和使用者之间的对话通道。开档案有开档案的方式、存盘有存盘的接口、打印机设定、字型选择、寻找字符串、置换字符串等等,在Win32 的环境中,这类的对话框实在是太多了。在这一章我们将带领大家进入设计对话框的世界。

Page 2: 基础综合 各种对话框的建立

大纲

• 6-1 Open / Save Dialog• 6-2 Open / Save PictureDialog• 6-3 FontDialog• 6-4 ColorDialog• 6-5 PrinterDialog• 6-6 PrinterSetupDialog• 6-7 FindDialog• 6-8 ReplaceDialog• 6-9 对话讯息框的使用• 本章习题

Page 3: 基础综合 各种对话框的建立

6-1 Open / Save Dialog

• 在窗口操作系统中,当使用者需要对某个档案作开启或关闭的动作时,通常需要透过档案处理对话框来对档案作处理,所以所谓的对话框,就是应用程序和使用者之间的交谈接口;一个设计优良的对话框,会让使用者相当容易上手。下图是档案开启的对话框。

Page 4: 基础综合 各种对话框的建立

Open / Save Dialog 实作

• 上图的画面是一般在窗口系统下开启档案的对话框,我们可以看到中间主画面是可选取的图示区,上方是目前目录名称以及一些目录基本功能,下方则是选取文件名称和档案格式。这些功能我们都可以用 BCB 所提供的OpenDialog 组件一手包办实作,唯一需要我们自己设定的只有档案格式过滤以及预设的开启路径。 OpenDialog 组件常见的属性如下:

属性 (Properties) 型态原型 说明

DefaultExt AnsiString 预设档案延伸档名

FileName AnsiString 读入档案路径及名称

Filter AnsiString 指定档案型态过滤方式

Option Set 对话框功能的设定

Title AnsiString 对话框标题的设定

Page 5: 基础综合 各种对话框的建立

Open / Save Dialog 实作

• 当我们建立一个 OpenDialog 组件时,在该组件的属性里有一个Filter 项目,这是提供设定档案格式属性的过滤方式,设定该属性可以让对话框在使用时挡掉不需出现的格式的档案,其字段功用说明如下: Filter Name 字段填入显示文字,而 Filter 字段填入档案格式,如果档案格式超过一个的话就用分号分开,一般在设定 Filter 时我们会加入一个显示所有档案的字段以提供对话框浏览时可以看到所有的档案。

Filter设定窗口

Page 6: 基础综合 各种对话框的建立

6-2 Open / Save PictureDialog

• OpenPictureDialog 组件提供了图文件预览的功能,相当适合影像处理类的软件;目前提供的预览格式有 JPEG 、 BMP 、ICO 档案等图形档案格式。当然, BCB 也提供了储存图文件的对话盒 SavePictureDialog 组件来做图文件储存。

Page 7: 基础综合 各种对话框的建立

Open / Save PictureDialog 属性介绍

• 我们可以由上图看到和 OpenDialog 最大不同的地方,就是右边有个预览区域,可以显示目前反白的图档内容,这个预览区只有在被点选的档案是属于被支持的图档类型才有效。至 于 其 它 的 部 分 , 外 观 和 功 能 都 和 OpenDialog 差 不多。 OpenPictureDialog 组件常见的属性如下 :

属性 (Properties) 型态原型 说明DefaultExt AnsiString 预设档案延伸档名FileName AnsiString 读入档案路径及名称Filter AnsiString 指定档案型态过滤方式Option Set 对话框功能的设定Title AnsiString 对话框标题的设定

Page 8: 基础综合 各种对话框的建立

6-3 FontDialog

• 一个功能齐全的文书编辑软件,需要提供字型的调整功能。 BCB 为了方便程序开发者在设计此功能时的效率,提供了 FontDialog 组件,其更改字型的对话窗口可让使用者以直觉的方式来更改字型。右图为字型对话盒。

更改字型设定对话盒

Page 9: 基础综合 各种对话框的建立

FontDialog 属性介绍

• BCB 有很多组件都含有 Font 属性,尤其是跟文字编辑相关的组件。但是字型的设定往往都是相当的繁琐,如改变字体的类别、格式、大小、颜色等等。如果是在程序执行的时候去修正改变,则对使用者而言将会是很痛苦的事情。所以 FontDialog 就解决了这个问题, BCB 中的FontDialog 组件的重要属性列表如下:

属性 (Properties) 型态原型 说明Device TFontDialogDevice 设定字型来源Font TFont 使用者选定之字型MaxFontSize int 字号之最大值MinFontSize int 字号之最小值Option Set 对话框的功能设定

Page 10: 基础综合 各种对话框的建立

6-4 ColorDialog

• 在窗口应用程序中,常常会有编辑软件可以选择图形或文字的颜色,选择颜色的方式通常是一个色彩对话框,如右图所示。 BCB 的所提供 的 色 彩 对 话 框 组 件 是ColorDialog , 我 们 可 以指定 所需改变的颜色为对话框所选取的颜色 作 为 编 辑 的 动作。 ColorDialog 最主要的属性就是 Color ,当开启对话框后所选择的颜色将会被设定在 Color属性。 基本更改颜色设定对话盒

Page 11: 基础综合 各种对话框的建立

ColorDialog 设定说明

• 在上图我们可以看到上半部是属于 Basic colors 的部分,这是系统提供的基本颜色,总共有 56种。在一般的选色情况下,这些系统提供的基本颜色就可以了。但是我们也可以自订一些自己想要 的 颜 色 , 下 面还有 16 个Custom Colors 的字段,让我们使用者可以自定颜色,而设定颜色的方式,就是依照基本色加上RGB 色的调整。 自订色彩设定画面

Page 12: 基础综合 各种对话框的建立

6-5 PrinterDialog

• PrinterDialog 主要功用在于提供设定打印版面,即设定打印的相 关 参 数 , 下 图 是PrinterDialog 对话框的显示接口。使用者可以设定打印范围对应到 PrintRange 属性,打印数量对应到 Copies 属性,加入自动分页功能对应到 Collate 属性,在 Options 属性里又有提供很多参数可以让我们自行设定,比如说设定打印页面,是否打印到档案等等。 打印设定画面

Page 13: 基础综合 各种对话框的建立

PrinterDialog 属性介绍• 以下为 PrinterDialog 属性的介绍及说明:• Copies 属性 : 型态为 int ,此属性为设定打印份数。• FormPage 属性 : 型态为 int ,此属性是设定打印的起始页,也就是说如果设定值为 1 的话,打印时会从第 1 页开始打印。

• ToPage 属性 : 型态为 int ,此属性是设定打印的最末页,也就是说如果设定值为 5 的话,打印时会从起始页开始打印到第 5 页。

• MinPage 属性 : 型态为 int ,此属性是设定打印的最小页数,当使用者输入的打印设定里如果打印页数小于该属性的值,则程序就会发出错误讯息。

• MaxPage 属性 : 型态为 int ,此属性是设定打印的最大页数,和 MinPage刚好相反,当使用者输入的打印设定里如果打印页数大于该属性的设定值值,则程序就会发出错误讯息。

• PrintRange 属性 :PrintRange 属性有三种设定值 :prAllPages , prPageNums ,prSelection 。当使用者选择 Range 时,程序员可以从 FromPage 和 ToPage里读出真正要打印的范围。

• PrintToFile 属性 : 型态为布尔变量,此属性的设定决定是否将打印的结果打印成为档案,默认值为否。

• Options 属性 : 这是一个 Set 属性,该 Set 里又有包含很多布尔型态属性,也都是作打印的设定。

Page 14: 基础综合 各种对话框的建立

6-6 PrinterSetupDialog

• PrinterSetupDialog 主要是用来做打印机的设定,这包含了打印机选择、纸张格式设定、走纸方式、以及打印方向等等,下图就是一个 PrintSetupDialog 所显示的对话框。

打印机设定画面

Page 15: 基础综合 各种对话框的建立

6-7 FindDialog

• Find 是帮助使用者搜寻文件里的字符串,常见的有文书编辑软件、网页浏览器等需要显示大量文字时,这个功能就是不可或缺的了。 BCB 所提供的 FindDialog 就是帮助程序开发者在需要程序加入此功能时可以直接套用, FindDialog 的重要属性如下:

属性 (Properties) 型态原型 说明FindText AnsiString 搜寻的字符串Option Set 对话框的功能设定Position Tpoint 搜寻起始位置

Page 16: 基础综合 各种对话框的建立

6-8 ReplaceDialog

• 我们需要大量的修改某一特定字符串成为另一个特定字符串时,有的人会每次先 Find 出来再去修改,这种修改方式在修改数量不大时还可以这样使用,但是如果修改的字符串数量相当多,那么这种方式就很没有效率。所以在一些文字编辑软件中,除了搜寻的功能外,一般都还会有一个类似叫取代的功能。 BCB 提供了另一个对话框组件 ReplaceDialog ,可以让我们大量的搜寻和修改。一般窗口 Replace 对话框如下图。

Page 17: 基础综合 各种对话框的建立

6-8 ReplaceDialog

• 上图中分别显示两个输入字段,第一为要搜寻的字符串,另一个为要更改成的字符串。如图中所示,可以点选 Find Next 搜寻下一个” I love Sally” 字符串,确定要更改再点选 Replace 。如点选 Replace All ,则所有的” I love Sally” 字符串将会被改成” I love Sally and Jimmy” 。 ReplaceDialog 使用方式其实和 FindDialog 差不多, ReplaceDialog 的重要属性如下:属性 (Properties) 型态原型 说明

FindText AnsiString 搜寻的字符串

Option Set 对话框的功能设定

Position Tpoint 搜寻起始位置

ReplaceText AnsiString 更改后的字符串

Page 18: 基础综合 各种对话框的建立

6-9 对话讯息框的使用 - MessageBox

• 6-9-1 : MessageBox在很多情况下,我们需要给使用者一些讯息,这些讯息可能是一个提示、一个疑问、一个警告,甚置是一个错误。这些讯息我们习惯用一个对话框来表达,而在这个对话框中可能会有几个按钮、一个图标,以及一句讯息。别以为为了这个对话框我们又要在新增一的 Form 、拖曳出按钮、贴上图标,C++ Builder 有一个 MessageBox()函式,能够产生一个对话框,这个函式的格式如下:

int MessageBox(const char * Text, const char * Caption, int Flags);

Page 19: 基础综合 各种对话框的建立

MessageBox 说明• 其中 Text 就是我们要在对话框中显示的字符串, Caption 是这个对话

框的标题, Flag 是这个对话框的格式,我们来看看 Flag 的用法:数值 功能

0(MB_OK) 对话框包含 OK按钮

1(MB_OKCANCEL) 对话框包含 OK、 CANCEL按钮

2(MB_ ABORTRETRYIGNORE) 对话框包含 ABORT、 RETRY、 IGNORE按钮

3(MB_YESNOCANCEL) 对话框包含 YES、 NO、 CANCEL按钮

4(MB_YESNO) 对话框包含 YES、 NO按钮

5(MB_RETRYCANCEL) 对话框包含 RETRY 、 CANCEL按钮

16 对话框包含错误警告图示

32 对话框包含疑问图示

48 对话框包含警告图示 1

64 对话框包含警告图示 2

0 将第一个按钮设为预设

256 将第二按钮设为预设

514 将第三按钮设为预设

Page 20: 基础综合 各种对话框的建立

6-9 对话讯息框的使用 - InputBox

• 6-9-2 : InputBox另一种对话框 InputBox 和 MessageBox 很像,只是它没有图标,按钮也是预设的,而且它多了一个 Edit 组件。它的函式格式也和 MessageBox 很像:

AnsiString InputBox(const AnsiString ACaption,const AnsiString APrompt,const AnsiString ADefault);

其 中 ACaption 变 量 为 标 题 , APrompt 为 提 示 讯息, ADefault为默认值,当使用者输入数据并按下 OK后,InputBox函式便会传回资料。

Page 21: 基础综合 各种对话框的建立

6-9 对话讯息框的使用 - ShowBox

• 6-9-3 : ShowBoxShowBox 函式格式如下:

这个对话框只有一个参数Msg,就是对话框中的讯息,当使用者按下OK后,程序就会继续执行,并不会有所影响。

void ShowMessage(const AnsiString Msg);

ShowBox画面

Page 22: 基础综合 各种对话框的建立

本章习题

• 将本章第五节里所提到的小记事本范例,请将其功能建构完整。

• 设计一个图片档案浏览程序,能够把同一目录下的图文件用缩小图形预览。

• 利用对话讯息框,设计一个备忘录纪录和查询的系统。