不容按钮、下拉框 执行同一个函数或者同一种函数的用法
1不同按钮执行同种函数;
第一步:
在resource.h 文件里面把按钮(下拉框)的它们ID 改为连续
#define IDC_BUTTON1 1003
#define IDC_BUTTON2 1004
#define IDC_BUTTON3 1005
#define IDC_BUTTON4 1006
#define IDC_BUTTON5 1007
第二:
.h文件定义执行函数
afx_msg void OnBnClickedProgram( UINT nID );//按钮
afx_msg void OnCbnSelchangeCardID( UINT nID );//下拉框
第三:
.cpp定义映射
BEGIN_MESSAGE_MAP(CProjiectDlg, CDialog)
ON_CONTROL_RANGE( BN_CLICKED ,IDC_BUTTON1 , IDC_BUTTON40 , OnBnClickedProgram )//按键的消息映射 表示从IDC_BUTTON1到IDC_BUTTON40都执行这个函数
ON_CONTROL_RANGE( CBN_SELCHANGE ,IDC_COMBO3 , IDC_COMBO7 , OnCbnSelchangeCardID )//下拉框的消息映射
添加消息映射
ON_CONTROL_RANGE(BN_CLICKED,IDC_NUM_0,IDC_NUM_9,OnNum)
第一个参数 事件
第二个参数 控件的第一个id
第三个参数 控件的最后一个id
第四个参数 响应事件的方法
END_MESSAGE_MAP()
第四:
函数体;
void CProjiectDlg::OnBnClickedProgram( UINT nID );//按钮
{
}
void CProjiectDlg::OnCbnSelchangeCardID( UINT nID );//下拉框
{
}
还有一个问题就是按钮、下拉框等按键可以关联按键数组变量;
如下拉框;
CComboBox m_ComID[5];
void CProjiectDlg::DoDataExchange(CDataExchange* pDX)
{
DDX_Control(pDX, IDC_COMBO3, m_ComID[0] );
DDX_Control(pDX, IDC_COMBO4, m_ComID[1] );
DDX_Control(pDX, IDC_COMBO5, m_ComID[2] );
DDX_Control(pDX, IDC_COMBO6, m_ComID[3] );
DDX_Control(pDX, IDC_COMBO7, m_ComID[4] );
}