c++/cli检索wpf窗口结果的最佳方式

本文关键字:结果 最佳 方式 窗口 wpf cli 检索 c++ | 更新日期: 2023-09-27 18:25:06

我有一个WPF窗口,我从C++/cli代码中调用它,它运行良好。我需要的是拦截用户操作的最佳方式,我的意思是,无论他是点击OK还是Cancel。我想做的是在我的窗口中定义一个Boolean属性,并根据用户操作进行设置。这是我的代码:

MyWindowView^ window = gcnew MyWindowView();
System::Windows::Interop::WindowInteropHelper^ windowInteropHelper = gcnew System::Windows::Interop::WindowInteropHelper(window);
windowInteropHelper->Owner = (IntPtr)AfxGetMainWnd()->m_hWnd;
window->WindowStartupLocation = System::Windows::WindowStartupLocation::CenterScreen;
window->ShowDialog();
if ()
{
    //some action
} 
else
{
    //
}

我还想知道我需要删除window对象吗?

c++/cli检索wpf窗口结果的最佳方式

Window.ShowDialog返回对话框结果。我看不出有任何理由以某种方式得到这个结果,这与C#或VB.NET:不同

System::Nullable<System::Boolean> result = window->ShowDialog();
if (result.HasValue)
{
    // OK or Cancel
    if (result.Value)
    {
        // OK clicked
    }
    else
    {
        // Cancel clicked
    }
}
else
{
    // dialog closed via system menu or Alt+F4
}

我需要删除窗口对象吗?

不,你没有。看看这个答案。