问题描述
- mfc group box 中radiobutton分组问题
-
vc的mfc基于对话框程序,动态建一个group box,并在里面动态放入多个radiobutton,为radiobutton添加批处理响应事件后,点击radiobutton无反应,有可能是哪里出问题了,如果radiobutton不放在group box中,无问题group box代码:
groupBox1->Create(_T("种类"), WS_CHILD | WS_VISIBLE | BS_GROUPBOX, CRect(18, 10, 339, 95), this, IDC_GROUPBOXBUTTON);
radiobutton 代码:
myRadioButton[i].Create(m_strProductValue[count], BS_AUTORADIOBUTTON,
CRect(10 + 80 * i, 20, 80 * (i + 1), 45), groupBox1, IDC_RADIO1+i);
解决方案
你说的点击无反应是什么意思?你radiobutton点击的代码在哪里,这里只有你创建radiobutton的代码。检查下id有没有重复?
解决方案二:
public:
afx_msg void OnBnClickedRadio(UINT nID);
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_MFCAPPLICATIONDEMO4_DIALOG 102
#define IDR_MAINFRAME 128
#define IDC_GROUPBOXBUTTON 1001
#define IDC_RADIO1 1005
BEGIN_MESSAGE_MAP(CMFCApplicationDemo4Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_CONTROL_RANGE(BN_CLICKED, IDC_RADIO1, IDC_RADIO1+9, &CMFCApplicationDemo4Dlg::OnBnClickedRadio)
END_MESSAGE_MAP()
解决方案三:
void CMFCApplicationDemo4Dlg::OnBnClickedRadio(UINT nID)
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("hello"), _T("提示"), MB_OK);
}