C ++ / MFC是否可以在单击另一个按钮时单击按钮?

时间:2016-02-26 11:46:24

标签: c++ button mfc

我的项目中有2个按钮:

-Button A

-Button B

有没有办法可以按下按钮A并执行ButtonB的点击。

2 个答案:

答案 0 :(得分:4)

从ButtonA单击回调中显式调用ButtonB的回调。


BOOL MyDialog::OnButton_A_Clicked()
{
  ...
  OnButton_B_Clicked();
}

this comment中所述,直接调用处理程序可能会导致细微问题,我会从同一评论中提出以下解决方案:

发送按钮单击消息到按钮B。

BOOL MyDialog::OnButton_A_Clicked()
{
  ...
  CWnd *pBtnB = GetDlgItem(IDC_BUTTONB);
  ASSERT(pBtnB != NULL);  // You can use MFC 
  pBtnB->SendMessage(BN_CLICKED);
}

答案 1 :(得分:3)

虽然答案已被接受,但我想提供另一种解决方案。

首先,一旦您决定点击ButtonB也会导致点击ButtonA,建议的按钮链接就会中断。

我会将所有点击与基础功能分开,并根据需要调用它:

void MyDialog::Button_A_Action()
{
}

void MyDialog::Button_B_Action()
{
}

void MyDialog::OnButton_A_Clicked()
{
  Button_A_Action();
  Button_B_Action();
}

void MyDialog::OnButton_B_Clicked()
{
  Button_B_Action();
}