Radio Buttons in MFC (Visual Studio 2008 / C++)

This is a quick and dirty description of how to use radio buttons in MFC, written because I could not find this information in a single place on the web.

In the dialog editor:

  • Create a new group with the group box control and set a meaningful caption
  • Add radio button controls inside the group
  • The radio buttons must have ascending tab order
  • The first radio button (in tab order) must have the property “Group” set to True
  • All other radio buttons must have the property “Group” set to False

It should look similar to this:

Radio button group

In the header file defining the dialog class:

  • Add a member variable of type int that will store which radio button is selected (none: -1, first: 0, second: 1, and so on).
    Example:
    int m_nLEDType;

In the cpp file implementing the dialog class:

  • In the constructor initialize the member variable (with 0)
    Example:
    CDialogConfig::CDialogConfig(CMainFrame* pMainFrame) : CDialog(CDialogConfig::IDD, pMainFrame), m_nLEDType(0)
  • In DoDataExchange add a call to DDX_Radio similar to the following (where IDC_RADIO_LEDTYPE1 is the ID of the first radio button):
    DDX_Radio(pDX, IDC_RADIO_LEDTYPE1, m_nLEDType);

When you want to read which radio button is selected:

  • Call UpdateData with a parameter of true (indicates reading):
    UpdateData (TRUE);
  • After UpdateData has been called, the member variable (m_nLEDType in this example) has the current state of the buttons.

When you want to select one of the buttons programmatically:

  • Set the member variable to the correct value (none selected: -1, first button selected: 0, second button selected: 1, and so on)
  • Call UpdateData with a parameter of false (indicates writing):
    UpdateData (FALSE);

Comments

Related Posts

Latest Posts

Beautiful Slide Decks from Markdown: Presenting with Slidev

Beautiful Slide Decks from Markdown: Presenting with Slidev
Would you like to get away from PowerPoint and author slide decks in Markdown? Then Slidev may be just what you’re looking for. It’s a web app for presentations. The fact that it’s geared towards developers shouldn’t put you off. After all, who isn’t a developer these days, with AI? Slidev comes with the beautiful Tahta themes and supports features like syntax highlighting and animations. Export options to PDF and PPTX allow for easy sharing. This article shows how to get started.
Applications