CListCtrl用法简介及使用技巧

[设置属性]

首先用资源编辑器拖放一个ListCtrl控件到对话框中。

设置属性。

Always Show Selection: True // 即便失去焦点依然高亮选择

SingleSelection: True   // 只允许选中一行

View: Report            // 报表方式,较常用

[初始化]

// 在对话框的OnInitialDialog中初始化ListCtrl

// 1. 设置样式

m_ListCtrl.SetExtendedStyle( LVS_EX_FULLROWSELECT );

// LVS_EX_FULLROWSELECT: 表示选中整行,而非某一列

// LVS_EX_GRIDLINES: 显示网格线

// LVS_EX_CHECKBOXES: 第一列前面显示复选框

// LVS_EX_FLATSB: 比较平的滚动条

// 2. 插入列

m_ListCtrl.InsertColumn( 0, _T("列标题0"), LVCFMT_LEFT, 100 );

m_ListCtrl.InsertColumn( 1, _T("列标题1"), LVCFMT_LEFT, 100 );

// LVCFMT_LEFT表示列左对齐,还可以取LVCFMT_RIGHT,LVCFMT_CENTER // 100为列宽

// 3. 插入行

// 可以在初始化时插入行,也可以动态插入行 (先InsertItem再SetItemText)

m_ListCtrl.InsertItem( 0, _T("0 行 0 列") );

m_ListCtrl.SetItemText( 0, 1, _T("0 行 1 列") );

m_ListCtrl.InsertItem( 1, _T("1 行 0 列") );

m_ListCtrl.SetItemText( 1, 1, _T("1 行 1 列") ); 

//得到listcstrl列数

int nHeadNum = m_list.GetHeaderCtrl()->GetItemCount();

//得到listcstrl行数

int nColumNum = m_list->GetItemCount();

//删除所有列

方法1:

while(m_listCtrl.DeleteColumn(0)) 

{

}

因为你删除了第一列后,后面的列会依次向上移动。

方法2:

for (int i=m_listCtrl.GetHeaderCtrl()->GetItemCount(); i>=0; i--)  

{   

    m_listCtrl.DeleteColumn(i);  

}

//得到某一项的值(行列索引都是从0开始) 

CString keyString = m_listCtrl.GetItemText(0,0);

 

 

 

 

 

posted @ 2013-03-06 09:47  劃云  阅读(321)  评论(0编辑  收藏  举报