[cpp]
[cpp]
///OnInitDialog()中添加代碼
[cpp]
//為列表控件添加列
m_list.InsertColumn(0,_T("第1列") , LVCFMT_LEFT,100);
m_list.InsertColumn(1,_T("第2列") ,LVCFMT_LEFT ,100);
///創建圖片列表
m_images.Create(32 ,32 ,ILC_COLOR32 ,1,1);
///在圖片列表中添加一個圖標
m_images.Add(m_hIcon);
///將圖片列表關聯到對話框上的列表控件
m_list.SetImageList(&m_images ,LVSIL_SMALL);
m_list.SetImageList(&m_images, LVSIL_NORMAL);
////CListCtrlDemoDlg頭文件添加變量m_images
[cpp]
CImageList m_images
[cpp]
///“添加行”按鈕的響應函數
void CListCtrlDemoDlg::OnBtnAdd()
{
// TODO: Add your control notification handler code here
int nCount = m_list.GetItemCount();
TCHAR szText[128] = {0};
_stprintf(szText , _T("第%d行第1列") , nCount + 1);
m_list.InsertItem(nCount ,szText , 0);
_stprintf(szText , _T("第%d行第2列") ,nCount + 1);
m_list.SetItemText(nCount , 1,szText);
}
void CListCtrlDemoDlg::OnBtnDelete()
{
// TODO: Add your control notification handler code here
///獲取總行數
int nCount = m_list.GetItemCount();
//循環,從下往上刪除所選的行
for(int i = nCount ; i >=0 ;i--)
{
if(m_list.GetItemState(i , LVIS_SELECTED) == LVIS_SELECTED)
m_list.DeleteItem(i);
}
}
///組合框改變的消息響應函數
[cpp]
void CListCtrlDemoDlg::OnSelchangeCmbView()
{
// TODO: Add your control notification handler code here
DWORD dwStyle;
///獲得控件
CComboBox *pView;
pView = (CComboBox*)GetDlgItem(IDC_CMB_VIEW);
///根據控件當前所選,得到列表框新的顯示風格
switch(pView->GetCurSel())
{
case 0 ://大圖標
dwStyle = LVS_ICON;
break;
case 1://小圖標
dwStyle = LVS_SMALLICON;
break;
case 2:
dwStyle = LVS_LIST;
break;
case 3:
dwStyle = LVS_REPORT;
break;
default:
return;
}
///應用新風格
m_list.ModifyStyle(LVS_TYPEMASK , dwStyle);
}
界面設計
列表控件ID為IDC_LIST,關聯變量m_list
兩個按鈕控件ID為IDC_BTN_ADD和IDC_BTN_DELETE
組合框ID為IDC_CMB_VIEW,為其添加消息響應函數CBN_SELCHANGE