Domanda

Quando inizializzo una finestra di dialogo, vorrei selezionare uno dei pulsanti di opzione sul modulo.Non vedo un modo per associare una variabile di controllo utilizzando la procedura guidata di classe, come faresti normalmente con CButtons, CComboBoxes, ecc...

Inoltre, non piace nemmeno che esista una classe CRadioButton.

Come posso selezionare uno dei numerosi pulsanti di opzione?

È stato utile?

Soluzione

I pulsanti di opzione e i pulsanti di controllo sono solo pulsanti.Usare un CButton controllo e utilizzo GetCheck/SetCheck.

Altri suggerimenti

Utilizzo CWnd::CheckRadioButton per impostare selezionare un pulsante in un gruppo e CWnd::GetCheckedRadioButton per recuperare l'ID del pulsante selezionato.Assicurati di chiamare questi metodi sul tuo oggetto di dialogo e non su nessuno degli oggetti del pulsante di opzione.

Seguendo quello che ha detto mos, quanto segue ha funzionato:

CButton* pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON);
pButton->SetCheck(true);
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
  ...
  DDX_Radio(pDX, IDC_RADIO1, m_Radio);
  ...
}

ma è la stessa cosa che Wizard genera

Puoi usare questa riga:

::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top