我想处理原生 c++ 类中的按钮单击事件。我尝试创建一个派生自Object
处理事件的“处理程序”对象,然后调用 C++ 方法。例如,我尝试了以下代码:
ref class GButtonHandler sealed : public Object
{
public:
void Button_Click(Object^ sender, RoutedEventArgs^ e)
{
}
GTextBlockHandler(GButtonImpl * pButtonImpl, Button ^ button)
{
button->Click += ref new RoutedEventHandler(this, >extBlockHandler::Button_Click);
}
};
认为我可以将pButtonImpl
指针隐藏起来,然后用它来调用函数中的本机Button_Clicked
函数。但是在编译这段代码时,我得到了错误:
error C3986: '{ctor}': signature of public member contains native type 'GButtonImpl'
因此,它似乎不喜欢我将本机类传递给 ref 对象。有没有办法做到这一点?
请注意,我对开发 Metro 风格应用程序完全陌生,所以请耐心等待!