20101011 中软实训进入验收阶段之再见combobox
算一算,实训二十五天时间也快到了,今天是倒数第三天。明天就要检查了。我们的项目也快完成了,虽然有许多不足之处。而且,由于进销存的难度之大。我到现在还没有算出它的销售成本和毛利。今晚还要努力呀。
想想今天敲代码的时间占了大多数。就是在做往那个班次管理的界面填充数据。有三个控件,一个是combobox两个是edit。我要做的是根据combobox来选择相关信息,同时在两个edit中显示与combobox相对应的信息。具体来说,就是在combobox中点了员工的id之后,员工的姓名和职位都在其余两个edit中显示出来。
在这里,我首先分别在客户端和服务器中定义一个数据结构,用于存储相关的数据,用于收发相关数据:
//员工姓名、职位、班次
struct StaffInfo
{
StaffInfo *next;
char staffID[28];
char staffName[32];
char staffPosition[32];
};
然后在客户端中定义一个combobox的全局指靠,在对话框初始化的时候,来一句:
banciStaffID = &m_cbStaffID;
把指针指向控件。我同学的做法也一样,不过在书写上有不同:
addbuy_good_combo = (CComboBox *)GetDlgItem(IDC_ADDBUY_GOOD); 其中,addbuy_good_combo也是一个combobox的全局指针。
收发数据的函数就不说了。这里主要讲combobox。Combobox的type默认为DropDown,这里要设置为Drop List。区别就是Dropdown的编辑区为可编辑控件,而droplist为静态控件。
这样一来,要给combobox填数据的时候就可以:
m_cbStaffID.ResetContent();
m_cbStaffID.AddString(staffID);
m_cbStaffID.SetCurSel(0);
而用SetDlgItemText(IDC_CBSTAFFID_BANCI,staffID)或是GetDlgItem(IDC_CBSTAFFID_BANCI)->SetWindowText(staffID) 都是不行的。