Nội dung
Viết chương trình hiển thị danh sách sinh viên
Hướng dẫn
- Tạo một project mới có tên UseListCtrl dạng Dialog Based
- Tạo một Dialog theo mẫu sau:
Trong properties của List Control, chọn Styles là Report
- Khai báo biến cho các control như sau:
- Khai báo các sự kiện BN_CLICKED cho các button IDC_IsMale, IDC_Add, IDC_Refresh, IDC_Exit
- Để tạo một table, chúng ta thêm hàm CreateTable() vào lớp CUseListCtrlDlg:
void CUseListCtrlDlg::CreateTable() { // Định dạng Style cho List Control m_StdList.SetExtendedStyle(LVS_EX_TRACKSELECT |LVS_EX_ONECLICKACTIVATE |LVS_EX_UNDERLINEHOT |LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES ); // Chèn thêm cột MSSV với độ rộng cột là 50 InsertColumn(0,"MSSV",50); // Chèn cột Họ Tên với độ rộng là 150 InsertColumn(1,"Ho ten",150); InsertColumn(2,"Ngay sinh",60); InsertColumn(3,"Gioi tinh",50); InsertColumn(4,"Dia chi",150); }Trong đó, hàm InsertColumn(…), như sau:
void CUseListCtrlDlg::InsertColumn(int iCol, CString Header, int Width) // iCol: chỉ số của cột; Header: tên của cột; Width: độ rộng cột { LV_COLUMNlv; lv.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH ; lv.fmt = LVCFMT_LEFT; lv.cx = Width; lv.pszText = (char *) (const char *)Header; m_StdList.InsertColumn(iCol,&lv); } - Chúng ta gọi hàm CreateTable() trong hàm OnInitDialog() của lớp
CUseListCtrlDlg, trong hàm này chúng ta them đoạn code sau. BOOL CUseListCtrlDlg::OnInitDialog() { .... // TODO: Add extra initialization here CreateTable(); UpdateData(0); .... } - Để chèn một record vào bảng, chúng ta sử dụng hàm sau:
voidCUseListCtrlDlg::InsertStudent(CStringCode,CStringName, COleDateTime Birthday, BOOL IsMale, CString Addr) { static unsigned int index = 0; CString Temp; // Chèn thêm một record ở dòng thứ index m_StdList.InsertItem(index,Code); // Ghi dữ liệu vào cột thứ 0 với nội dung trong biến Code ở dòng thứ index m_StdList.SetItemText(index,0,Code); m_StdList.SetItemText(index,1,Name); Temp.Format("%d/%d/%d",Birthday.GetDay(),Birthday.GetMonth(),Birth day.GetYear()); m_StdList.SetItemText(index,2,Temp); Temp = (IsMale==0)?"Nam":"Nu"; m_StdList.SetItemText(index,3,Temp); m_StdList.SetItemText(index,4,Addr); index++; } - Trong hàm OnAdd(), ta thêm đoạn code sau:
void CUseListCtrlDlg::OnAdd() { // Cập nhật nội dung trên form vào các biến UpdateData(); // Chèn thông tin về sinh viên InsertStudent(m_Code,m_Name,m_Birthday,m_IsMale,m_Addr); UpdateData(0); }