List Control and List View


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at List Control and List View.

For convenience, MFC encapsulates the list control in two ways. You can use list controls:

  • Directly, by embedding a CListCtrl object in a dialog class.

  • Indirectly, by using class CListView.

CListView makes it easy to integrate a list control with the MFC document/view architecture, encapsulating the control much as CEditView encapsulates an edit control: the control fills the entire surface area of an MFC view. (The view is the control, cast to CListView.)

A CListView object inherits from CCtrlView and its base classes and adds a member function to retrieve the underlying list control. Use view members to work with the view as a view. Use the GetListCtrl member function to gain access to the list control's member functions. Use these members to:

  • Add, delete, or manipulate "items" in the list.

  • Set or get list control attributes.

To obtain a reference to the CListCtrl underlying a CListView, call GetListCtrl from your list view class:

   CListCtrl& listCtrl = GetListCtrl();

This topic describes both ways to use the list control.

Using CListCtrl