如何在C ++ / CX中创建鼠标事件处理程序

时间:2015-10-07 19:04:04

标签: event-handling windows-store-apps mouseevent c++-cx

我在使用C ++ / CX制作的Windows 8 metro应用程序中创建按钮控件。我想制作一个按下按钮时触发的事件。但我不知道如何在C ++ / CX中为按钮添加事件。

如果您想在C#中执行此操作,请执行以下操作:

Button btnDoSomething = new Button();
btnDoSomething.MouseClick += new MouseEventHandler(iGotClickedByTheButton);

void iGotClickedByTheButton(object sender, MouseEventArgs e)
{
    MessageBox.Show("Hello I got clicked!");
}

所以我的做法是做这样的事情:

Button^ btnDoSomething = ref new Button();
btnDoSomething->Tapped += ref new TappedEventHandler(sender, iGotClickedByTheButton);

void iGotClickedByTheButton(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
    MessageDialog^ msgDlg = ref new MessageDialog("Hello I got clicked!");
    msgDlg->ShowAsync();
}

然而,这导致了这个地方的错误:

btnDoSomething->Tapped += ref new TappedEventHandler(sender, iGotClickedByTheButton);

显示以下错误:

  

错误:无效的委托初始化程序 - 函数与   代表类型。

1 个答案:

答案 0 :(得分:0)

通过执行以下操作解决了这个问题:

Button^ btnDoSomething = ref new Button();
btnDoSomething->Click += ref new Windows::UI::Xaml::RoutedEventHandler(this, &MyProjectName::MainPage::iGotClickedByTheButton);