|
MFC新人求助。
现象:两个Radio是一组,给它们绑定好单击响应函数后,在函数中弹出一个MessageBox(_T("LED OPENlllll"));。预想是应用启动后,点击任意一个Radio都触发事件,弹出消息。但是现在应用一启动,这个函数里的MessageBox就弹出了,弹出“LED OPENlllll”,点击确定会关闭,马上再次弹出。这样弹3次后,出现应用界面,点击界面任意位置后,又弹出9次,才能正常使用应用。
我有一个如下的界面:

并给两个radio绑定了同一个单击响应函数:onRadioBtnLEDClicked:
BEGIN_MESSAGE_MAP(CMFCCall51Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_LED_OPEN, &CMFCCall51Dlg::onRadioBtnLEDClicked)
ON_BN_CLICKED(IDC_LED_CLOSE, &CMFCCall51Dlg::onRadioBtnLEDClicked)
END_MESSAGE_MAP()
void CMFCCall51Dlg::onRadioBtnLEDClicked()
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("LED OPENlllll"));
int check = GetCheckedRadioButton(IDC_LED_OPEN, IDC_LED_CLOSE);
if (check == 1000) {
MessageBox(_T("LED OPEN"));
}
else if(check == 1001){
MessageBox(_T("LED CLOSE"));
}
}
给两个Radio分别绑定了一个变量:
void CMFCCall51Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LED_OPEN, m_RadioLEDOpen);
DDX_Control(pDX, IDC_LED_CLOSE, m_RadioLEDClose);
}
这是我的resource.h文件:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 MFCCall51.rc 使用
//
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_MFCCALL51_DIALOG 102
#define IDR_MAINFRAME 128
#define IDC_LED_OPEN 1000
#define IDC_LED_CLOSE 1001
#define IDC_STATIC_LED 1002
#define IDC_BUTTON1 1010
#define IDC_CHECK1 1011
#define IDC_RADIO1 1013
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 130
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1015
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
我在OnInitDialog中没有加任何自己的初始化代码,这个应用才起步,就出现了这个问题。
百度了好久也没找到相似现象的,请问有没有人有点思路?
|
上一篇: 学完c++基础知识后想做运动控制编程的工作下一篇: 定时 tcpip DLL 通讯 就一页代码
|