Pergunta

Quando eu estou inicializando um diálogo, eu gostaria selecione um dos botões de opção no formulário.Eu não vejo uma forma de associar uma variável de Controlo, utilizando o Assistente de Classe, tal como você normalmente faria com CButtons, CComboBoxes, etc...

Além disso, ele não gosta de uma CRadioButton classe, ainda existe.

Como pode selecionar um dos vários botões de rádio?

Foi útil?

Solução

Os botões de opção e botões de seleção são apenas botões.Usar um CButton controle e utilização GetCheck/SetCheck.

Outras dicas

Utilização CWnd::CheckRadioButton para definir selecione um botão em um grupo e CWnd::GetCheckedRadioButton para obter o ID do botão selecionado.Certifique-se de chamar esses métodos no objecto de caixa de diálogo, e não qualquer botão de rádio objetos.

Acontecendo o que mos dito, o seguinte trabalhou fez o truque:

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

mas é a mesma coisa Assistente gera

Você pode usar esse one-liner:

::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top