C++ 如何在C++;
我需要调用几个按钮点击事件一起在一个单一的按钮点击。 我该怎么写呢?我可以在这里使用多播代理概念吗 我的设想: 我有一个叫XYZ的按钮。单击此按钮后,必须逐个调用我为应用程序的其他按钮编写的事件处理程序 有人能帮我吗?C++ 如何在C++;,c++,mfc,C++,Mfc,我需要调用几个按钮点击事件一起在一个单一的按钮点击。 我该怎么写呢?我可以在这里使用多播代理概念吗 我的设想: 我有一个叫XYZ的按钮。单击此按钮后,必须逐个调用我为应用程序的其他按钮编写的事件处理程序 有人能帮我吗? 我浏览了这个链接: 但它对我来说没有用:(< P>)如果你只限于微软Visual C++,你可以使用它,它与托管世界非常类似。 首先声明要将事件前置到方法的方法: __event void OnButtonClicked(...); 然后用以下内容装饰包含该方法的类: [eve
我浏览了这个链接: 但它对我来说没有用:(< P>)如果你只限于微软Visual C++,你可以使用它,它与托管世界非常类似。 首先声明要将事件前置到方法的方法:
__event void OnButtonClicked(...);
然后用以下内容装饰包含该方法的类:
[event_source(native)]
class MyEventGenerator
{
public:
__event void OnButtonClicked(const void* pSender, const void* pArguments);
};
要引发事件,只需调用函数(在\uu raise
关键字前面加上前缀是可选的,但它会在代码中明确表示您要引发事件)。请注意,您甚至可以从类外部引发事件,因为这是一个简单的方法调用
用于处理事件的类必须修饰为:
[event_receiver(native)]
class CMyEventReceiver
{
public:
void OnButtonClicked(const void* pSender, const void* pArguments);
};
要附加事件,您没有+=
的权限,因此必须在CMyEventReceiver
类中编写类似的内容:
__hook(&CMyEventGenerator::OnButtonClicked, pEventGenerator,
&CMyEventReceiver::OnButtonClicked);
请注意,要分离事件处理程序,您必须使用
\uu unhook
关键字。查看我的答案:我尝试过这样做,但当我执行应用程序时,单击按钮时,我面临一个错误,该错误表示“遇到了无效参数”我也无法理解事件源和事件接收器类。在我的场景中,接收器和源都是同一个类。希望我的查询清楚。抱歉,如果我混淆了你,如果需要,你可以在同一个类上使用它们(我想你有相同的类,但不同的对象!!!)。如果您确实对它感到不舒服,您可以简单地使用成员函数指针的std::vector(如果所有内容都在类中…)或(如果boost是一个选项)boost::function的std::vector。如果您有…时间,请阅读这篇文章:,它非常非常好(它的委托实现可能适合您的需要)。