Cách sử dụng List CTRL
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/2004 I. Mục tiêu Hướng dẫn sử dụng List Control II. Nội dung Viết chương trình hiển thị danh sách sinh viên III. 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_StdList Lư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); } . hàm CreateTable() vào lớp CUseListCtrlDlg: void CUseListCtrlDlg::CreateTable() { // Định dạng Style cho List Control m_StdList.SetExtendedStyle(LVS_EX_TRACKSELECT. Hướng dẫn sử dụng List Control II. Nội dung Viết chương trình hiển thị danh sách sinh viên III. Hướng dẫn ♦ Tạo một project mới có tên UseListCtrl dạng