2 yxingsong yxingsong 于 2016.05.01 17:12 提问

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);

3个回答

caozhy
caozhy   Ds   Rxr 2016.05.01 23:44

你说的点击无反应是什么意思?你radiobutton点击的代码在哪里,这里只有你创建radiobutton的代码。检查下id有没有重复?

yxingsong
yxingsong void CMFCApplicationDemo4Dlg::OnBnClickedRadio(UINT nID) { // TODO: 在此添加控件通知处理程序代码 MessageBox(_T("hello"), _T("提示"), MB_OK); }
一年多之前 回复
yxingsong
yxingsong 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()
一年多之前 回复
yxingsong
yxingsong public: afx_msg void OnBnClickedRadio(UINT nID);
一年多之前 回复
yxingsong
yxingsong #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
一年多之前 回复
yxingsong
yxingsong 就是选中radiobutton,不响应对应的事件,静态创建groupbox,并在里边放置radiobutton,然后再写上对应的响应事件无问题,事件能正确响应,动态就不行,以下是动态的响应事件以及ID:
一年多之前 回复
yxingsong
yxingsong   2016.05.03 00:05

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()

yxingsong
yxingsong   2016.05.03 00:07

void CMFCApplicationDemo4Dlg::OnBnClickedRadio(UINT nID)
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("hello"), _T("提示"), MB_OK);

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!