首先,當然是從工具箱拖放一個listctrl控件到窗口。
然后,給它關聯一個control類型的變量m_list,不會?好吧,看好了,在控件上單擊右鍵,選擇添加變量,在彈出的添加控件變量對話框中找到名稱這個編輯框,輸入m_list,點擊完成,之后就可以開車啦!
1、設置listctrl控件的樣式以及擴展樣式
樣式在控件屬性里可以設置,對話框的OnInitDialog方法中還可以再設置擴展樣式
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); // 整行選擇、網格線
括號中的內容可以設置以下的選項,用 “|” 隔開即可。
LVS_EX_CHECKBOXES //每一行的最前面帶個復選框
LVS_EX_FULLROWSELECT //整行選中
LVS_EX_GRIDLINES //網格線
LVS_EX_HEADERDRAGDROP //列表頭可以拖動
2、插入一整行
int InsertItem(int nItem, LPCTSTR lpszItem)
nItem:插入到第幾行
lpszItem:這一行第一列的文字
示例:m_list.InsertItem(0, "第一列的內容,可為空");
3、插入一列
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 )
nCol:插入到第幾列
lpszColumnHeading:列名稱
nFormat:列對齊方式,左中右
nWidth:列寬度
nSubItem:子項的索引與列,可省略。
示例:m_list.InsertColumn(3, "WindowTitle", LVCFMT_CENTER, 100);
4、刪除操作
刪除一行:BOOL DeleteItem(nItem)
nItem:行編號
示例:m_list.DeleteItem(5);
刪除一列:BOOL DeleteColumn(nCol)
nCol:列編號
示例:m_list.DeleteColumn(5);
刪除所有列:
示例:while (m_list.DeleteColumn (0))
刪除所有內容,列標題仍在:BOOL DeleteAllItems()
示例:m_list.DeleteAllItems();
5、更新數據
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
nItem:行序號
nSubItem:列序號
lpszText:需要更新的內容
示例:m_list.SetItemText(3, 1, "需要更新的內容");
6、得到選中行的行號
多選:
CString str;
for(int i=0; i<m_list.GetItemCount(); i )
{
if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
{
str.Format(_T("選中了第%d行"), i);
AfxMessageBox(str);
}
}
單選:
POSITION pos = m_list.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
int nItem = m_list.GetNextSelectedItem(pos);
}
}
7、移動滾動條使某一條隱藏的記錄顯示出來
BOOL EnsureVisible(int nItem,BOOL bPartialOK );
nItem:需要顯示的記錄的行號
bPartialOK:布爾值
示例:m_list.EnsureVisible(i, FALSE);
