MFC list control控件

1.初始化代码:

CRect rect;
 
	// 获取编程语言列表视图控件的位置和大小   
	m_List.GetClientRect(&rect);
 
	// 为列表视图控件添加全行选中和栅格风格   
	m_List.SetExtendedStyle(m_List.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
 
	// 为列表视图控件添加三列   
	m_List.InsertColumn(0, _T("语言"), LVCFMT_CENTER, rect.Width() / 3, 0);
	m_List.InsertColumn(1, _T("2019.02排名"), LVCFMT_CENTER, rect.Width() / 3, 1);
	m_List.InsertColumn(2, _T("2018.02排名"), LVCFMT_CENTER, rect.Width() / 3, 2);
 
	// 在列表视图控件中插入列表项,并设置列表子项文本   
	m_List.InsertItem(0, _T("Java"));
	m_List.SetItemText(0, 1, _T("1"));
	m_List.SetItemText(0, 2, _T("1"));

2.每点击一次button,数据加1写入下一行,edit中的数据取出放入列表第二列,每次新加的行,第二列都为该数据:

count++;
i++;
CString a;
a.Format(_T("%d"),count);//cstring和int类型转化
m_list1.InsertItem(i,a);//插入一行
CString b;
m_edit1.GetWindowTextW(b);
m_list1.SetItemText(i-1,1,b);//插入一行内容

3.删除list1选中的某一行:

CUIntArray arDelItem;
    int CurSel=m_list1.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
    while(CurSel>=0)
    {
        arDelItem.Add(CurSel);
        CurSel=m_list1.GetNextItem(CurSel,LVNI_ALL|LVNI_SELECTED);
    }

    for(int i=arDelItem.GetUpperBound();i>=0;i--)
    {
        int iSel=arDelItem[i];
        m_list1.DeleteItem(iSel);
    }
    a--;

3.1保存list1控件内容到自定义位置:

CString t_id,t_name,t_chinese,t_math,t_foreign;
myfile.Open(_T("./score.text"),CFile::typeText|CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::shareDenyNone);
for (int i=0;i<a;i++)
{
    t_id=m_list1.GetItemText(i,0);
    t_name=m_list1.GetItemText(i,0);
    t_chinese=m_list1.GetItemText(i,0);
    t_math=m_list1.GetItemText(i,0);
    t_foreign=m_list1.GetItemText(i,0);
    myfile.WriteString(t_id+"\n");
    myfile.WriteString(t_name+"\n");
    myfile.WriteString(t_chinese+"\n");
    myfile.WriteString(t_math+"\n");
    myfile.WriteString(t_foreign+"\n");
}
myfile.Close();

3.2清空list1所有行:

((CListCtrl*)GetDlgItem(IDC_LIST1))->DeleteAllItems();

3.3将之前保存的内容读取到list1中来:

myfile.Open(_T("./score.text"),CFile::typeText|CFile::modeRead|CFile::shareDenyNone);
CString t_id,t_name,t_chinese,t_math,t_foreign;
for (int i=0;i<a;i++)
{
    myfile.ReadString(t_id);
    myfile.ReadString(t_name);
    myfile.ReadString(t_chinese);
    myfile.ReadString(t_math);
    myfile.ReadString(t_foreign);
    m_list1.InsertItem(i,0);
    m_list1.SetItemText(i,0,t_id);
    m_list1.SetItemText(i,1,t_name);
    m_list1.SetItemText(i,2,t_chinese);
    m_list1.SetItemText(i,3,t_math);
    m_list1.SetItemText(i,4,t_foreign);
}
myfile.Close();

4.保存的模组内容以文件夹的格式存在:

a++;
CDlgshow dlg;
dlg.DoModal():
name=_T("D:\\Mozu\\")+dlg.str;
CreateDirectory(name,NULL);
m_list1.InsertItem(a-1,0);
m_list1.SetItemText(a-1,0,dlg.str);
m_list1.SetItemText(a-1,1,dlg.str);

4.1在初始化函数中:

CRect rect;
m_list1.GetClientRect(&rect);
m_list1.SetExtendedStyle(m_list1.GetExtendedStyle()|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list1.InsertColumn(0,_T("模组名"),LVCFMT_CENTER,rect.Width()/2,0);
m_list1.InsertColumn(1,_T("编号"),LVCFMT_CENTER,rect.Width()/2,1);
WIN32_FIND_DATA fd;
HANDLE hFind=::FindFirstFile(_T("D:\\Mozu\\*"),&fd);
if(hFind!=INVALID_HANDLE_VALUE)
{
    do
    {
        if(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
        {
            CString str1=fd.cFileName;
            if(str1!=_T(".")&&str1!=_T(".."))
            {
                m_list1.InsertItem(b,0);
                m_list1.SetItemText(b,0,fd.cFileName);
                m_list1.SetItemText(b,0,fd.cFileName);
                b++;
             }
         }
    }while(::FindNextFile(hFind,&fd));

     ::FindClose(hFind);
}

4.2删除模组内容:

int b=0;
b=m_list1.GetSelectionMark();
    if(b+1)
    {
    RemoveDirectory(_T("D:\\Mozu\\")+m_list1.GetItemText(b,0));//删除文件夹中模组名对应的文件夹
    m_list1.DeleteItem(b);//删除list中对应的行
    b=-1;
    a--;
    }

5.自动写入内容到list1中:

SetTimer(1,1000,NULL);

在OnTimer函数中添加:

CTime time;
CString str;
str.Format(_T("%d"),item+1);
time=CTime::GetCurrentTime();
CString date=time.Format("%Y-%m-%d %M:%S");
m_list1.InsertItem(item,0);
m_list1.SetItemText(item,0,str);
m_list1.SetItemText(item,1,_T("name"));
m_list1.SetItemText(item,2,_T("备注"));
m_list1.SetItemText(item,3,_T("on"));
m_list1.SetItemText(item,4,date);
item++;

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值