Tải bản đầy đủ (.pdf) (5 trang)

Tài liệu Visual C-010 Sử dụng ListCtrl doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (180.63 KB, 5 trang )


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


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);
}


×