To make check boxes act like radio buttons (mutually exclusive)

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

If you have a list control in your dialog with the
LVS_EX_CHECKBOXES style, you can make the check boxes to act like
radiobuttons by adding two lines of code.. First map the
LVN_ITEMCHANGED event of the list control from the class wizard
and add the code shown


void CListDlg::OnItemchangedMylist(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

/* If the event is not fired because of any change in individual items then the oldstate and
newstate members of pNMListView are not used. So check for that.*/

if (!pNMListView->uOldState && !pNMListView->uNewState)
return;

// m_listctl is the member variable of the dialog which is of type CListCtl.
BOOL bChecked = ListView_GetCheckState(m_listctl.m_hWnd, pNMListView->iItem);

// if it’s checked uncheck everything else.
int nCount;

if (bChecked)
for(nCount=0;nCount<m_listctl.GetItemCount();nCount++)
if(nCount != pNMListView->iItem)
m_listctl.SetCheck(nCount, FALSE);
}

Date Last Update: February 1, 1999

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read