如何获取托管在 MFC 对话框上的窗口窗体事件?
我有一个托管在 MFC 对话框上的用户控件。我在该用户控件中有一个按钮。我想在 mfc 对话框中处理该按钮的单击事件。
因此,我尝试按照 MSDN 中的规定实现它。
在支持 CLR 的项目中严格遵循 MSDN 中描述的步骤。它编译并运行良好。但是托管了 c# 控件的 mfc 不会接收到事件。
我的问题是
- 还有什么要检查的以获取事件接收器吗?
- 如果在托管端处理事件会发生什么,控件会返回到主机应用程序吗?
如何获取托管在 MFC 对话框上的窗口窗体事件?
我有一个托管在 MFC 对话框上的用户控件。我在该用户控件中有一个按钮。我想在 mfc 对话框中处理该按钮的单击事件。
因此,我尝试按照 MSDN 中的规定实现它。
在支持 CLR 的项目中严格遵循 MSDN 中描述的步骤。它编译并运行良好。但是托管了 c# 控件的 mfc 不会接收到事件。
我的问题是
我发现了问题,因此回答了我自己的问题。
还有什么要检查的以获取事件接收器吗?
按照 MSDN 进行是正确的。这里出现的问题是错误地附加了 Click 事件。
即) m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
我的订阅是为了控制自己。
m_MyControl.GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);
IE。如果在托管端和主机端都处理单击事件。
好吧,首先托管方接收事件,然后主机方接收它。