用CListCtrl創建列表視圖(一)

上圖爲代碼的效果。

 

代碼編寫過程如下:

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;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章