MFC之List Control

 

ListControl------Report类型

1. 列相关操作

插入列 

//插入第一列
m_hListMuti.InsertColumn(0,_T("FirstColumn"),HDF_CENTER,100,0);
//插入第二列 
m_hListMuti.InsertColumn(1,_T("SecondColumn"),HDF_CENTER,52,0);

删除列

m_hListMuti.DeleteColumn(0);  //删除第一列
m_hListMuti.DeleteColumn(1);  //删除第二列

注:删除所有列时要从后往前删,因为如果把前面的列删除后,后面的列号变了。

获取总列数

//通过ListControl的Header获取总列数 
int  nColNum=m_ hListMuti.GetHeaderCtrl()->GetItemCount();  

获取所有列的Header字符串内容

LVCOLUMN lvcol;
char str[256]=””;
int nColNum=0;
CString strColumnName[4];//假如有4列

nColNum = 0;
lvcol.mask = LVCF_TEXT;
lvcol.pszText = str;
lvcol.cchTextMax = 256;
while(m_hListMuti.GetColumn(nColNum, &lvcol))
{
   strColumnName[nColNum] = lvcol.pszText;   
   nColNum++;
}

修改指定列的列名

LVCOLUMN   column;
//第一列
column.mask=LVCF_TEXT;
column.pszText= "TempFirstColumn";
m_hListMuti.SetColumn(0,&column); 

//第二列
column.mask=LVCF_TEXT;
column.pszText=" TempSecondColumn ";
m_hListMuti.SetColumn(1,&column);

 2. 样式设

//设置ListControl的样式
m_hListMuti.ModifyStyle(0,LVS_SHOWSELALWAYS);  
//设置ListControl的扩展样式
m_hListMuti.SetExtendedStyle(LVS_EX_FULLROWSELECT | 
LVS_EX_GRIDLINES| LVS_EX_TWOCLICKACTIVATE); 

3.行相关操作

获取ListControl的总行数

Int nMutilItem=m_hListMuti.GetItemCount();

获取所有选中行的行号及内容

vector <int> viRowIndex;   //记录行号
vector <CString> vstrItemText;  //记录选择行第一列的内容
int nMutilItem;    //记录选择的行数

viRowIndex.clear();
vstrItemText.clear();

POSITION pos = m_hListMuti.GetFirstSelectedItemPosition();
int nSingleItem = m_hListMuti.GetNextSelectedItem(pos);
while(pos != NULL)
{
    viRowIndex.push_back(nSingleItem);
    CString strItem=m_hListMuti.GetItemText(nSingleItem,0); //获取该行第一列的值
     //CString strItem=m_hListMuti.GetItemText(nSingleItem,1); //获取该行第二列的值
    vstrItemText.push_back(strItem);
    nSingleItem = m_hListMuti.GetNextSelectedItem(pos);
    nMutilItem++;
}

删除所有行

m_hListMuti.DeleteAllItems();  //删除所有行

删除一行 

m_hListMuti.DeleteItem(0);  //删除第0行

添加行

m_hListMuti.InsertItem(0,"");     //在第0行的位置插入一行
m_hListMuti.SetItemText(0,0,"0-0");    //设置第0行第0列的值为“0-0”
m_hListMuti.SetItemText(0,1,"0-1");    //设置第0行第1列的值为“0-1”


你可能感兴趣的:(mfc,ListControl)