请教MFC中ON_COMMAND_RANGE和ON_CONTROL_RANGE宏有什么区别呢?

在下写程序时对话框中使用很多复选框,想简洁代码,请教该使用哪个宏呢?也请给个例子吧,稍微详细些的,
多谢~~,
在下使用的ON_COMMAND_RANGE,但是在cpp文件中写函数时,使用明明是这个对话框中已经声明过的变量(和编辑框联系),但是编译总是报错,
error C2065: 'm_e_2' : undeclared identifier
warning C4244: '=' : conversion from 'const float' to 'int', possible loss of data
其中的m_e_2是声明过的float变量,并不是int型的,

另外,使用诸如UpdateData(false);这样的函数也报错,
error C2065: 'UpdateData' : undeclared identifier
请教这是怎么回事啊?使用宏不能用其它函数么?

第1个回答  推荐于2018-03-28
ON_COMMAND 以及 ON_COMMAND_RANGE 是用于处理菜单项或工具栏按钮的命令消息的
对于复选框这样的控件,请使用ON_CONTROL_RANGE
1. 打开 resource.h,将你的复选框控件ID进行连续编号,例如1001,1002...
2. 在对话框类的头文件中添加公有成员函数:afx_msg void OnCheckBox(UINT uID) ;
3. 在对话框类的cpp文件中BEGIN_MESSAGE_MAP(CTestDlg, CDialog) 的 //}}AFX_MSG_MAP下添加代码 ON_CONTROL_RANGE(BN_CLICKED,1001,1003,OnCheckBox)
4. 然后在cpp文件中添加函数void CTestDlg::OnCheckBox(UINT uID) {}
5. 在函数内判断 uID,来确定用户单击了哪项复选框,并作相应处理。本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网