文档详情

CListCtrl用法.doc

发布:2017-02-04约2.61千字共5页下载文档
文本预览下载声明
在系统中,经常会用到ListCtrl来对数据进行显示,那么在系统中,对ListCtrl的使用主要是两个函数进行使用。结合主界面对ListCtrl的用法进行一下介绍: 第一步,从控件列表栏里面,拖动一个ListCtrl在主界面上: 第二步,修改ListCtrl的样式 第三步,修改ListCtrl的资源ID 第四步,为ListCtrl绑定一个变量。右键点击ListCtrl控件,然后选择“建立类向导”, 按下图进行设置 第五步,添加设置ListCtrl表头的函数。在类视图中右键点击“CAMSDlg”类,然后选择“”,弹出“添加成员函数”界面,输入函数类型及函数描述,选择可见域为“Private”,如下图所示,并点击“确定” 第六步,在InitListCtrlStyle函数中添加如下代码,设置ListCtrl的列头及样式: int CAMSDlg::InitListCtrlStyle() { //获取ListCtrl的宽度 CRect rect; m_listActiveCards.GetClientRect(rect); int nColInterval = rect.Width(); //设置ListCtrl的样式 m_listActiveCards.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT ); //插入列索引、列名、列的文字格式,列宽 m_listActiveCards.InsertColumn(0, _T(卡号), LVCFMT_RIGHT, int(nColInterval*0.1)); m_listActiveCards.InsertColumn(1, _T(卡类别), LVCFMT_LEFT, int(nColInterval*0.1)); m_listActiveCards.InsertColumn(2, _T(上机状态), LVCFMT_LEFT, int(nColInterval*0.1)); m_listActiveCards.InsertColumn(3, _T(上次下机时间), LVCFMT_LEFT, int(nColInterval*0.3)); m_listActiveCards.InsertColumn(4, _T(当前余额), LVCFMT_LEFT, int(nColInterval*0.15)); m_listActiveCards.InsertColumn(5, _T(备注), LVCFMT_LEFT, int(nColInterval*0.25)); return 0; } 第七步,添加ListCtrl的绑定数据的函数RefreshListCtrlData()。在函数里面做如下操作,首先获取ListCtrl的记录行数n,然后在第n行依次往各列插入数据。代码如下: int CAMSDlg::RefreshListCtrlData() { //插入十条模拟数据 for (int i = 0; i 10 ; i++) { //根据i来生成卡号 CString strCardID; strCardID.Format(Card_%d, i); //获取ListCtrl的当前记录条数iItemCount int iItemCount = m_listActiveCards.GetItemCount(); m_listActiveCards.InsertItem(iItemCount,); //往第iItemCount插入第一列的数据数据,即插入卡号 m_listActiveCards.SetItemText(iItemCount,0, strCardID); //往第iItemCount插入第二列的数据数据,即插入卡类型 CString strType = (i%2 == 0 ? 普通卡:特殊卡); m_listActiveCards.SetItemText(iItemCount,1, strType); //往第iItemCount插入第三列的数据数据,即插入卡状态 m_listActiveCards.SetItemText(iItemCount,2, 未使用); //获取当前时间 CTime tTime = CTime::GetCurrentTime(); CString strTemp = tTime.Format(%Y-%m-%d %H:%M:%S); //往第iItemCount插入第四列的数据数据,即插入卡的上机时间 m_listActiveCards.
显示全部
相似文档