C++/MFC 有没有办法在单击另一个按钮的同时单击另一个按钮

C++/MFC is there a way to click a button while clicking another one?

本文关键字:单击 另一个 按钮 MFC 有没有 C++      更新时间:2023-10-16

>我的项目中有 2 个按钮:

-按钮 A

-按钮 B

有没有办法我可以按下按钮 A 并执行按钮 B 的单击。

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

      布尔我的对话框::OnButton_A_Clicked(){  ...  OnButton_B_Clicked();}
    

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

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

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

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

首先,一旦您决定单击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();
}