How to Use a Listbox Control in MFC Visual C++

Written by ehow contributor
  • Share
  • Tweet
  • Share
  • Email

A list box is a Windows control that can display text or iconic items as a list of rows. The Microsoft Foundation Class (MFC) Library offers the CListBox class that encapsulates all the necessary functionalities for manipulating a list box. Follow these steps to see how you can add a text string to and remove it from a list box in Microsoft Visual Studio.

Skill level:

Things you need

  • Microsoft Visual Studio IDE
  • Book on MFC, such as "Programming Windows With MFC" by Jeff Prosise

Show MoreHide


  1. 1

    Create a new project in Visual Studio to manipulate the control. From the upper menu bar, click "File" > "New" and select "MFC AppWizard(exe)" in the "Projects" tab. Enter a name for the project in the "Project name" text box and click "OK." Select the "Dialog based" radio button and click "Finish" and then "OK." A dialog screen with two control buttons, one "OK" and one "Cancel," is displayed in the Design View mode.

  2. 2

    Add MFC controls on the dialog screen: one list box and some auxiliary controls to make the tutorial more interesting. To find a list box, move the mouse over the controls toolbox and read the popup balloons. Click the "List Box" icon and click on the dialog screen to add it there. In a similar fashion add an "Edit Box" and two "Buttons."

  3. 3

    Modify the MFC controls. Right-click on the list box, select "Properties" and change the ID to IDC_MYLISTBOX, under the "General" tab. Do the same to the edit box and change its ID to IDC_MYEDITBOX. In one button, change the ID to IDC_MYBUTTONADD and the Caption to "Add." In the other button, change the ID and Caption to IDC_MYBUTTONREM and "Remove," respectively.

  4. 4

    Join the list box and edit box using the Class Wizard. From the upper menu, click "View" > "Classwizard" or press Ctrl+W. Select "IDC_MYLISTBOX" under the "Member Variables" tab and click "Add Variable." Type "m_myListBox" in the "Member variable name" text box and select "Control" under "Category." Click "OK." Next, select "IDC_MYEDITBOX," click "Add Variable" and give the name "m_myEditBox." Don't change the combo boxes. Click "OK" to close the class wizard.

  5. 5

    Give some functionality to the Add button. Double-click the "Add" button. When the "Add Member Function" window appears, click "OK." Copy and paste the following code inside the "::OnMybuttonadd()" function, under the comment: <table><tr><td> CString str;


    str = m_myEditBox;


    m_myListBox.AddString(str); </td></tr></table>

  6. 6

    Repeat Step 5 for the "Remove" button. Copy and paste the following code inside the "::OnMybuttonrem()" function, under the comment: <table><tr><td> int pos;

    CString str;

    pos = m_myListBox.GetCurSel();

    m_myListBox.DeleteString(pos); </td></tr></table>

  7. 7

    Compile and run the code. Type some text in the edit box and click the Add button. That text will be added as a row in the list box. Next, highlight a list box row and click Remove. This action deletes the row.

Tips and warnings

  • The list box communicates with its parent, usually a dialog box like in this tutorial, by means of notification messages like LBN_DBLCLICK (the list box has been double-clicked).
  • The CListBox class offers many other member functions that fall into seven categories. Here are just a few:
  • Construction
  • CListBox
  • Initialization
  • Create
  • InitStorage
  • General Operations
  • GetCount
  • GetItemRect
  • GetItem
  • Single-Selection Operations
  • GetCurSel
  • Multiple-Selection Operations
  • SetSel
  • SetItemRange
  • String Operations
  • AddString
  • FindString
  • ResetContent
  • Overridables
  • DrawItem
  • For a complete listing, visit and enter "CListBox" in the search box.

Don't Miss

  • All types
  • Articles
  • Slideshows
  • Videos
  • Most relevant
  • Most popular
  • Most recent

No articles available

No slideshows available

No videos available

By using the site, you consent to the use of cookies. For more information, please see our Cookie policy.