MFC - 列表控制元件



封裝了列表檢視控制元件的功能,該控制元件顯示專案的集合,每個專案由一個圖示(來自影像列表)和一個標籤組成。它由CListCtrl類表示。列表控制元件包含使用四種檢視之一來顯示專案列表。

  • 圖示
  • 小圖示
  • 列表
  • 報表

讓我們透過建立一個新的基於 MFC 對話方塊的應用程式來了解一個簡單的示例。

步驟 1 - 刪除 TODO 行並拖動一個列表控制元件。

步驟 2 - 在“屬性”視窗中,您將在“檢視”下拉列表中看到不同的選項。

List Control

步驟 3 - 從“檢視”欄位中選擇“報表”。

步驟 4 - 為列表控制元件新增控制變數 m_listCtrl。

Add List Control Var

步驟 5 - 在 OnInitDialog() 中初始化列表控制元件。

BOOL CMFCListControlDlg::OnInitDialog() {
   CDialogEx::OnInitDialog();
 
   // Set the icon for this dialog. The framework does this automatically
   // when the application's main window is not a dialog
   SetIcon(m_hIcon, TRUE);         // Set big icon
   SetIcon(m_hIcon, FALSE);         // Set small icon

   // TODO: Add extra initialization here
   // Ask Mfc to create/insert a column
   m_listCtrl.InsertColumn( 
      0,              // Rank/order of item 
      L"ID",          // Caption for this header 
      LVCFMT_LEFT,    // Relative position of items under header 
      100);           // Width of items under header
		
   m_listCtrl.InsertColumn(1, L"Name", LVCFMT_CENTER, 80);
   m_listCtrl.InsertColumn(2, L"Age", LVCFMT_LEFT, 100);
   m_listCtrl.InsertColumn(3, L"Address", LVCFMT_LEFT, 80);
   
   int nItem;

   nItem = m_listCtrl.InsertItem(0, L"1");
   m_listCtrl.SetItemText(nItem, 1, L"Mark");
   m_listCtrl.SetItemText(nItem, 2, L"45");
   m_listCtrl.SetItemText(nItem, 3, L"Address 1");
   
   nItem = m_listCtrl.InsertItem(0, L"2");
   m_listCtrl.SetItemText(nItem, 1, L"Allan");
   m_listCtrl.SetItemText(nItem, 2, L"29");
   m_listCtrl.SetItemText(nItem, 3, L"Address 2");

   nItem = m_listCtrl.InsertItem(0, L"3");
   m_listCtrl.SetItemText(nItem, 1, L"Ajay");
   m_listCtrl.SetItemText(nItem, 2, L"37");
   m_listCtrl.SetItemText(nItem, 3, L"Address 3");

   return TRUE; // return TRUE unless you set the focus to a control
}

步驟 6 - 編譯並執行上述程式碼後,您將看到以下輸出。

List Control Output
mfc_windows_controls.htm
廣告