(5)控件对象
在对话框内,控件允许用户输入或者选择项目。控件对象为交互式应用程序提供的各种不同控件提供了一致而且简单的处理手段。为完成用户特定的对话框界面元素时,需要在布局上、控件选择上重新定义。Object Unix/Linux Class Library提供了以下控件类可供选择,这些类都从TControl类派生出来的,而Tcontrol类又是从TObject基类派生的。
1) TControl
TControl是所有控件类的基类,并为所有控件类提供一致的接口和相同的属性。
2) TLabel
TLabel提供了建立和查询静态文本的成员函数。
由于标签控件没有键盘事件,所以在Object Unix/Linux Class Library中把该控件的键盘事件属性设置为假:KeyEvent=FALSE。
TLabel的构造函数比较简单,它只需要用户传递显示的内容,显示位置以及显示颜色即可。
Label1 = new TLabel(“姓名:”,4,1,BLACK_WHITE);
其中,构造函数的第一个参数为标签内容,第二个参数为相对于父对话框的列坐标,第三个参数为相对于父对话框的行坐标,第四个参数为标签文本内容显示的前景颜色,本例是采用黑色前景,白色背景显示文本。
要查询目前标签控件中采用的文本,可以直接使用标签控件类的数据成员Caption。例如:strcpy(buff,Label->Caption);
要修改目前标签控件中采用的文本,可以直接赋值标签控件类的数据成员Caption。例如:Label->Caption=“住址:”;
3) TLine
TLine提供了建立行线或竖线的成员函数。TLine构造函数接受常规的控件参数如坐标以及颜色等,并接受其特殊的参数如画横线或竖线标志。
下面例子创建一个横线控件:
TLine *Line;
Line = new TLine(M_HORZ,0,10,Width,10,FTColor));
其中,第一个参数M_HORZ表示画横线,如果该参数为M_VERL,则表示画竖线;第二个参数表示相对于父对话框的列坐标;第三个参数表示相对于父对话框的行坐标;第四个参数表示宽度,这里选用父对话框的宽度,表示该线长度和对话框的宽度一样;第五个参数表示竖线的高度,对于所画线为竖线,则该参数有用,而第四个参数无用;第六个参数表示画线所使用的前景颜色,这里采用父对话框的前景颜色。
4)TEdit
TEdit为对话框提供增强的文本行编辑能力。TEdit的构造函数接收一般的控件构造函数参数如坐标,显示颜色等以及支持编辑类特有的参数,如输入缓冲区等。
下面代码用于生成定长输入的普通文本编辑:
TEdit *Edit;
Edit = new TEdit(24,0,4,2,26,1,BLACK_WHITE,WHITE_WHITE);
其中第一个参数24表示最多输入24个字母;第二个参数表示普通文本输入,如果采用密码输入,则该参数置为1;第三个参数表示输入框相对于父对话框的列坐标;第四个参数表示输入框相对于父对话框的行坐标;第五个参数表示输入框的宽度,一般取值比最多输入字母个数多2;第六个参数表示输入字母显示的前景颜色,本例采用黑前景白背景;第七个参数表示输入字母显示的背景颜色,本例采用白背景;
如果想在分组框内放置一个编辑框控件,则应该在其构造函数的第一个参数前加一个参数:分组对象TGroup的指针。
如果采用不定长的编辑框,则上述例子的第一个参数不要,共六个参数。当输入的个数超过编辑框定义的长度,系统会自动翻滚。可以用左、右移光标键来定位。编辑框所允许的最大长度为256个字符。其中编辑框的宽度由第四个参数编辑狂宽度定义。
下面代码用于生成不定长输入的密码文本编辑:
TEdit *Edit;
Edit = new TEdit(1,4,2,26,1,BLACK_WHITE,WHITE_WHITE);
其中第一个参数1表示密码输入方式,其它参数定义同上个例子说明。 Tedit存在数据成员Text,可以直接引用该数据成员以得到您所输入的文本。该数据成员定义为字符数组,长度为256个字节。该输入文本是以‘\0’为结束符的标准C语言字符串。为了对编辑框控件设置初值,可以直接引用TEdit类的数据成员Text。比如,可以拷贝一个字符串到输入框中,当该控件显示时,如果数据成员Text不为空,系统就会显示其内容在编辑框中。这对编辑框赋初值比较有用。
|