Programaticamente selecionar um MFC botão de rádio
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?
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);