Hướng dẫn thực hành Lập trình C trên Windows - Sử dụng List Control
Để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
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(),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); }
File đính kèm:
- Hướng dẫn thực hành Lập trình C trên Windows - Sử dụng List Control.pdf