MFC可视化 列表控件的使用

1、应该加入头文件

 
#include <Atlbase.h>
 
2、示例
 
MFC下列表控件的使用 - songxing10000 - 十一岁的加重
 
 
类向导给列表控件绑定变量m_list

DWORD 
 dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_FLATSB;  

m_list.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);
m_list.SetExtendedStyle(dwExStyle);

m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,40);
m_list.InsertColumn(1,"性别",LVCFMT_LEFT,40);
m_list.InsertColumn(2,"年龄",LVCFMT_LEFT,40);
m_list.InsertColumn(3,"年级",LVCFMT_LEFT,40);
m_list.InsertItem(0,"张三");
m_list.InsertItem(1,"李四");
m_list.InsertItem(2,"王五");
CString str1,str2,str3;
str1="男";
str2="20";
str3="三年级";
m_list.SetItemText(0,1,str1);
m_list.SetItemText(0,2,str2);
m_list.SetItemText(0,3,str3);
 
  LV_ITEM lvItem;
  lvItem.mask=LVIF_TEXT;
  lvItem.iSubItem=0;
  lvItem.pszText="";
for(i=0; i<Rnumber; i++)
    {
  
        for(int j=0; j<Rnum[i]; j++)
  {
   lvItem.iItem=j;   
    str1=R[i][j].des_ip.c_str();
    //MessageBox(str1);
    
    str2=R[i][j].next_ip.c_str();
    str3.Format("%d",R[i][j].jump_num);
    m_list1.InsertItem(&lvItem);
    m_list1.SetItemText(j,0,str1);
    m_list1.SetItemText(j,1,str2);
    m_list1.SetItemText(j,2,str3);
   }
}
 
控件的及时更新
void CMy3Dlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    CString str;
    int sent=1;
    for(int i=0;i<8;i++)
    {
        
        sent++;
        str.Format("%d数据包发送完毕",sent);
        ((CListBox*)GetDlgItem(IDC_LIST1))->AddString(str);
        Sleep(1000);
        UpdateWindow();
        ((CListBox*)GetDlgItem(IDC_LIST1))->ResetContent();
    
    }
}

想实现每隔1000ms显示添加的数据,但是每次都是要等到函数结束后才会更新。

在网上找到了答案。在延迟后面添加更新函数UpdateWindow();就可以了。

 
原文地址:https://www.cnblogs.com/XDJjy/p/3807663.html