VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 281|回复: 2

VS2017建的MFC对话框应用,radio单击事件总是在应用启动时自动触发好几次

[复制链接]
53_avatar_middle
最佳答案
0 
在线会员 发表于 2022-3-26 16:51:26 | 显示全部楼层 |阅读模式

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

我有一个如下的界面:
VS2017建的MFC对话框应用,radio单击事件总是在应用启动时自动触发好几次

并给两个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 通讯 就一页代码
53_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-26 17:08:34 | 显示全部楼层
第一次发帖,界面的图不知道怎么没发上来,就是两个Radio,没别的
29_avatar_middle
最佳答案
0 
在线会员 发表于 2022-3-26 23:32:51 | 显示全部楼层
学习学习学习学习学习学习
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-12-10 03:10

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表