在 MFC 应用程序中以编程方式调用事件处理程序
Calling the event handler programmatically in an MFC application
我正在开发 MFC 应用程序 (C++)
我的复选框有一个映射到 ON_BN_CLICKED
的事件处理程序。
当用户 check/uncheck 框,即调用事件处理程序时,它工作正常。
但是,当我以编程方式选中该框时:((CButton *)this->GetDlgItem(x))-> ->SetCheck(1);
不会调用事件处理程序。
我应该怎么做才能以编程方式调用事件处理程序?
这是正常现象。当 "click" 或 "user entry" 更改按钮时发送 WM_COMMAND。
这与子控件不相关。当程序执行 SetWindowText 时,其他子控件(如编辑控件)也会发送 WM_COMMAND EN_CHANGE 消息(MFC 在 DoDataExchange 中阻止此消息)。
this->SendMessage(WM_COMMAND,
MAKELONG(IDC_BUTTON1, BN_CLICKED),
((CButton *)this->GetDlgItem(x))->GetSafeHwnd());
我正在开发 MFC 应用程序 (C++)
我的复选框有一个映射到 ON_BN_CLICKED
的事件处理程序。
当用户 check/uncheck 框,即调用事件处理程序时,它工作正常。
但是,当我以编程方式选中该框时:((CButton *)this->GetDlgItem(x))-> ->SetCheck(1);
不会调用事件处理程序。
我应该怎么做才能以编程方式调用事件处理程序?
这是正常现象。当 "click" 或 "user entry" 更改按钮时发送 WM_COMMAND。
这与子控件不相关。当程序执行 SetWindowText 时,其他子控件(如编辑控件)也会发送 WM_COMMAND EN_CHANGE 消息(MFC 在 DoDataExchange 中阻止此消息)。
this->SendMessage(WM_COMMAND,
MAKELONG(IDC_BUTTON1, BN_CLICKED),
((CButton *)this->GetDlgItem(x))->GetSafeHwnd());