上图为代码的效果。
代码编写过程如下:
1:在资源编辑器中为对话框模板添加一个列表视图控件。
2:用ClassWizard在类CServerDlg中为列表视图控件关联一个控件类型的变量(也只能是控件类型的),ClassWizard生成的代码如下:
.h文件中:
public:
CListCtrl m_ctlUserList;
.cpp文件中:
void CServerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CServerDlg)
DDX_Control(pDX, IDC_LIST1, m_ctlUserList);
//}}AFX_DATA_MAP
}
3:在CServerDlg中定义一个CImageList类型的指针:
public:
// Attibutes.
CImageList* m_pImageList;
4:在CServerDlg中添加函数:
BOOL InitListCtl(); /**< Init list control.*/
该函数用户初始化列表控件。
5:在InitListCtl函数中编写控件列表初始化代码:
/**
* Init list control. In this function, we set list control's icon, header name.
* @return
*/
BOOL CServerDlg::InitListCtl()
{
/**
* Create and initialize image list. 32*32, 8 bits DIB section, with mask
* and so on.
*/
m_pImageList = new CImageList();
ASSERT(NULL != m_pImageList);
m_pImageList->Create(32, 32, ILC_COLOR8|ILC_MASK, 2, 2);
CWinApp* pApp = AfxGetApp();
HICON hIconOnline = pApp->LoadIcon(IDR_MAINFRAME); /**< Get online icon.*/
HICON hIconOffline = pApp->LoadIcon(IDR_MAINFRAME); /**< Get offline icon.*/
m_pImageList->Add(hIconOnline); /**< Add online icon.*/
m_pImageList->Add(hIconOffline); /**< Add offline icon.*/
/**
* Initialize list control.
*/
m_ctlUserList.SetImageList(m_pImageList, LVSIL_NORMAL);
// Initialize list control's header.
m_ctlUserList.InsertColumn(0, _T("名称"), LVCFMT_LEFT, 80);
m_ctlUserList.InsertColumn(1, _T("密码"), LVCFMT_CENTER, 80);
m_ctlUserList.InsertColumn(2, _T("地址"), LVCFMT_CENTER, 80);
m_ctlUserList.InsertColumn(3, _T("端口"), LVCFMT_CENTER, 80);
m_ctlUserList.InsertColumn(4, _T("时间"), LVCFMT_CENTER, 80);
return TRUE;
}