VC++ OnButton2共用OnButton1的代码

来源:百度知道 编辑:UC知道 时间:2024/06/16 03:22:19
如何使用OnButton2共用OnButton1的代码
并且,我如何知道用户按的是Button1还是Button2

void CMyExeDlg::OnButton2()
{
//如何知道用户按的是Button1还是Button2

}

假设button1的ID为IDC_BUTTON1,Button3的ID为IDC_BUTTON2;

void CMyExeDlg::OnButton2()
{
int nID = GetFocus() ->GetDlgCtrlID();

if(nID == IDC_BUTTON1)
{
MessageBox("1");
}
else if(nID == IDC_BUTTON2)
{
MessageBox("2");
}

}

如果是两个按钮的处理方法不同,那就为每个按钮建立消息映射,分别处理。
如果两个按钮处理方法相同,那可以让他们的处理方法相同就可以了。

ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON3, OnButton2)
消息就这个样映射
要想知道是否按了那个消息
可以判断焦点在哪个按扭上就可以了
代码:
void CMyExeDlg::OnButton2()
{
if(GetDlgItem(IDC_BUTTON2) == GetFocus())//判断是否按下了BUTTON2
{
//////相应的处理
}
方法好想有点麻烦。。。只