MFC - List 列表控件

封装列表视图控件的功能,该控件显示项目集合,每个项目由一个图标(来自图像列表)和一个标签组成。 它由CListCtrl类表示。 列表控件包括使用四个视图之一来显示项目列表。

  • 图标
  • 小图标
  • 列表
  • 报告

让我们通过创建一个新的基于 MFC 对话框的应用程序来研究一个简单的示例。

步骤 1 − 删除 TODO 行并拖动一个列表控件。

步骤 2 − 在"属性"窗口中,您将在"视图"下拉列表中看到不同的选项。

列表控件

步骤 3 − 从"视图"字段中选择"报告"。

步骤 4 − 为列表控件添加控件变量m_listCtrl。

添加列表控件变量

步骤 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 − 当上面的代码被编译并执行时,您将看到以下输出。

列表控件输出

❮ mfc_windows_controls.html