通过重写实现class CarWin :public CWinBase { public: CarWin(int x = 0, int y = 0, int w = 0, int h = 0); ~CarWin(); int doAction();//按钮分发:不同的按钮执行不同的业务 private: CLabel *title, *license_plate_lab, *total_lab, *remainder_lab; CEdit *license_plate_edit, *information_edit, *total_edit, *remainder_edit; CButt *query_btu, *storage_btu, *outbound_btu, *flushed_btu, *return_btu; };调用class CStorageWin :public CWinBase { public: CStorageWin(int x = 0, int y = 0, int w = 0, int h = 0); ~CStorageWin(); int doAction();//按钮分发:不同的按钮执行不同的业务 private: CLabel *title, *cpn_lab;//cpn=License plate number(车牌号) CEdit *cpn_edit; CButt *login_btu, *reg_btu; };里面的cpn_edit
时间: 2023-06-16 08:02:03 浏览: 115
Front-End Fundamentals A practical guide to front-end web development
重写的内容应该是在类中定义成员变量和成员函数,并且在构造函数中初始化这些成员变量和控件。在CarWin类中,成员变量包括title、license_plate_lab、total_lab、remainder_lab、license_plate_edit、information_edit、total_edit、remainder_edit、query_btu、storage_btu、outbound_btu、flushed_btu、return_btu;成员函数包括doAction()。在CStorageWin类中,成员变量包括title、cpn_lab、cpn_edit、login_btu、reg_btu;成员函数包括doAction()。
在CarWin的构造函数中,应该初始化这些成员变量和控件。例如:
CarWin::CarWin(int x, int y, int w, int h) : CWinBase(x, y, w, h) {
title = new CLabel("Car Management System", 20, 20, 200, 30, this);
license_plate_lab = new CLabel("License plate number:", 20, 60, 150, 20, this);
license_plate_edit = new CEdit("", 170, 60, 150, 20, this);
//...
query_btu = new CButt("Query", 20, 200, 80, 30, this);
storage_btu = new CButt("Storage", 100, 200, 80, 30, this);
outbound_btu = new CButt("Outbound", 180, 200, 80, 30, this);
flushed_btu = new CButt("Flushed", 260, 200, 80, 30, this);
return_btu = new CButt("Return", 340, 200, 80, 30, this);
}
在CStorageWin的构造函数中也应该进行类似的初始化。例如:
CStorageWin::CStorageWin(int x, int y, int w, int h) : CWinBase(x, y, w, h) {
title = new CLabel("Login/Register", 20, 20, 200, 30, this);
cpn_lab = new CLabel("License plate number:", 20, 60, 150, 20, this);
cpn_edit = new CEdit("", 170, 60, 150, 20, this);
//...
login_btu = new CButt("Login", 20, 120, 80, 30, this);
reg_btu = new CButt("Register", 100, 120, 80, 30, this);
}
在doAction()函数中,根据不同的按钮执行不同的业务,例如:
int CarWin::doAction() {
if (query_btu->isClicked()) {
//执行查询操作
return 1;
} else if (storage_btu->isClicked()) {
//执行入库操作
return 2;
} else if (outbound_btu->isClicked()) {
//执行出库操作
return 3;
} else if (flushed_btu->isClicked()) {
//执行冲账操作
return 4;
} else if (return_btu->isClicked()) {
//执行返回操作
return 5;
}
return 0;
}
在CStorageWin中的doAction()函数也应该类似。至于cpn_edit,是CStorageWin类的一个成员变量,可以在doAction()函数中使用,例如:
int CStorageWin::doAction() {
if (login_btu->isClicked()) {
//获取cpn_edit的内容并进行登录操作
string cpn = cpn_edit->getText();
//...
return 1;
} else if (reg_btu->isClicked()) {
//获取cpn_edit的内容并进行注册操作
string cpn = cpn_edit->getText();
//...
return 2;
}
return 0;
}
阅读全文