5)TButton
TButton表示对话框上的按钮。TButton的构造函数接收一般的控件构造函数参数如坐标,显示颜色等参数。另外,它还接受按钮上显示的文本Caption以及按钮类型参数ButtonType。下面介绍一个通常的按钮定义方式:
TButton *Button;
Button = new TButton(EXIT_BUTTON,“退出”,4,10,
BLACK_CYAN,WHITE_MAGENTA);
在本例子中,TButton构造函数的第一个参数EXZIT_BUTTON表示按钮的类型;第二个参数表示显示在按钮上面的文本;第三个参数表示按钮所处的列坐标;第四个参数表示按钮所处的行坐标;第五个参数表示按钮文本显示的前景颜色BLACK_CYAN;第五个参数表示按钮背景的填充颜色WHITE_MAGENTA;
这里需要说明的是,按钮类型的定义对用户有很大的区别。在Object Unix/Linux Class Library中提供了两类按钮:普通按钮和具有退出对话框能力的按钮。在系统提供的头文件define.hpp中有对按钮类型进行了定义,当然,也可以增加其定义,但不能修改。
有两类按钮类型可以退出对话框系统:EXIT_BUTTON和OK_BUTTON。因此在设计对话框时,至少应该含有一个上述类型的控件。当然,按钮类型与按钮上面显示的文本并没有必然的联系,可以定义“退出”为退出对话框,也许根据业务需要,“取消”或“保存”也可以退出对话框。这种定义一般根据实际的需要和常规的情理来进行的。
对于其他的按钮,可以选用其他的按钮类型。只要保证一点,在对话框内的所有按钮类型必须唯一,也就是说,按钮类型不能重复。由于在按钮类型的常量定义中已经区别开了,所以能够保证其唯一。用户随后增加的按钮类型应该保证不能和已有的类型冲突。
不论何时,只要用户按下按钮,按钮的父对话框就会收到一个通知消息,父对话框通过事件响应函数对此作出响应。
在下面的例子中,定义一个响应按钮事件的消息响应函数:
int TUserDialog::PressEnterEvent(void)
{
TButton *Button;
if(strcmp(ControlList->Control->GetClassName(),"BUTTON")==0){
Button=(TButton *)ControlList->Control;
switch(Button->ButtonType) {
case SAVE_BUTTON:
//处理按下确认键,该段程序需要用户自己编写
break;
case EXIT_BUTTON:
//处理按下确认键,该段程序需要用户自己编写
break;
}
}
return 1;
}
6)TList
TList的实例表示列表框上。它处理列表框的生成和表项选择,它还定义了处理表项的成员函数。
一个TList的构造函数接受常规的控件构造函数参数:坐标、位置、显示颜色等等。下面例子创建一个列表框控件对象。
TList *List
List = TList(0,“列表框”,4,5,20,5,BLACK_WHITE,BLACK_BLACK, YELLOW_BLUE,BLUE_BLUE);
|