0

如何获取托管在 MFC 对话框上的窗口窗体事件?

我有一个托管在 MFC 对话框上的用户控件。我在该用户控件中有一个按钮。我想在 mfc 对话框中处理该按钮的单击事件。

因此,我尝试按照 MSDN 中的规定实现它。

如何:从本机 C++ 类接收 Windows 窗体事件

在支持 CLR 的项目中严格遵循 MSDN 中描述的步骤。它编译并运行良好。但是托管了 c# 控件的 mfc 不会接收到事件。

我的问题是

  1. 还有什么要检查的以获取事件接收器吗?
  2. 如果在托管端处理事件会发生什么,控件会返回到主机应用程序吗?
4

1 回答 1

0

我发现了问题,因此回答了我自己的问题。

  1. 还有什么要检查的以获取事件接收器吗?

    按照 MSDN 进行是正确的。这里出现的问题是错误地附加了 Click 事件。

即) m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );

我的订阅是为了控制自己。

m_MyControl.GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);

  1. 如果在托管端处理事件会发生什么,控件会返回到主机应用程序吗?

IE。如果在托管端和主机端都处理单击事件。

好吧,首先托管方接收事件,然后主机方接收它。

于 2013-11-14T14:22:15.970 回答