CommunityToolkit / Microsoft.Toolkit.Win32

ARCHIVE - This repository contained XAML Islands wrapper controls and tooling for XAML Islands with WinUI 2, see readme for more info about XAML Islands with WinUI 3 and the WindowsAppSDK.
https://aka.ms/windowsappsdk
Other
385 stars 89 forks source link

How to wait for a co_routine from MFC UI thread(Button click) , which displays UWP content dialog over a WinUI hosted MFC #313

Open VrindaJayan opened 3 years ago

VrindaJayan commented 3 years ago

void CSampleDlg::OnBnClickedAdd()
{
…………...……………………...……………...…...………….. …………...……...…...………...…………...…...…...…………. IAsyncAction async = ShowContentDialog();
async.Completed([&](IAsyncAction asynctest, AsyncStatus st)
{
asynctest.GetResults();
AfxMessageBox(L"completed ..........");
});
AfxMessageBox(L"OK before get");
async.get();
AfxMessageBox(L"After get");
CString csSNum;
GetDlgItemText(IDC_EDIT4, csSNum);
double sum = _wtof(csSNum);
m_customUctrl.SetSum(100.00);

}

Windows::Foundation::IAsyncAction CSampleDlg::ShowContentDialog()
{
ContentDialog dialog;
dialog.Content(box_value(L"Do you want to continue to update textbox?"));
dialog.Title(box_value(L"Confirmation"));
dialog.PrimaryButtonText(L"Ok");
dialog.SecondaryButtonText(L"Cancel");
dialog.CloseButtonText(L"Ok");
dialog.XamlRoot(m_customUctrl.XamlRoot());
winrt::Windows::UI::Xaml::Controls::ContentDialogResult result = co_await dialog.ShowAsync();
if (result == ContentDialogResult::Primary)
{
AfxMessageBox(L"Primary");
}
else if (result == ContentDialogResult::Secondary)
{
AfxMessageBox(L"Secondary");
}
else
{
AfxMessageBox(L"Third");
}
co_return;
}
In the above code sample, trying to display a UWP content dialog from MFC SDI application(XAML island hosted application). And to set text on a text box based on the ContentDialog button click(Primary or secondary button). Issue is the code portion after the line "async.get(); "not executed .

Issue already reported in https://docs.microsoft.com/en-us/answers/questions/322651/code-after-iasyncactionget-not-executed.html

ghost commented 3 years ago

Hello VrindaJayan, thank you for your interest in Win32!

I have automatically added a "needs triage" label to help get things started. Our team will look into the question and answer ASAP. Other community members may also answer the question and provide feedback 🙌

ghost commented 3 years ago

This issue has been marked as "needs attention 👋" due to no activity for 15 days. Please triage the issue so the fix can be established.

michael-hawker commented 3 years ago

FYI @marb2000