♦ Tạo một project mới có tên UseListCtrl dạng Dialog Based ♦ Tạo một Dialog theo mẫu sau:IDC_Code IDC_Name IDC_Bithday IDC_IsMale IDC_AddrIDC_StdListLưu ý: 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() {...
Nội dung trích xuất từ tài liệu:
Sử dụng List Control SỬ DỤNG LIST CONTROL Trương Thị Mỹ Trang Khoa Công nghệ Thông tin, trường Đại học Khoa học Tự nhiên TP.HCM ttmtrang@fit.hcmuns.edu.vn Phiên bản cập nhật ngày 16/11/2004I. Mục tiêu Hướng dẫn sử dụng List ControlII. Nội dung Viết chương trình hiển thị danh sách sinh viênIII. 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: IDC_Code IDC_Name IDC_Bithday IDC_IsMale IDC_Addr IDC_StdListLưu ý: 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_COLUMN lv; 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:void CUseListCtrlDlg::InsertStudent(CString Code, CString Name,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(),Birthday.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);}