【解決方法】winui 3 で 2 つのウィンドウを作成する際の問題

プログラミングQA


こんにちは、

C++ WinUI 3 のプロジェクトで、2 つのウィンドウを同時に作成するときに問題が発生します。 問題を絞り込んでみると、同じ関数で 2 つのオブジェクト Window を作成できないことがわかりました。 たとえば、次のようにボタンがクリックされたときにイベントがあるとします。

void MainWindow::ClickButton(IInspectable const&, RoutedEventArgs const&)
{
w1 = ウィンドウ();
w2 = ウィンドウ();
}

明らかに、わかりやすくするためにコードを簡略化しています。 w1 と w2 は、MainWindow クラスの IWindow 型メンバーの変数です。

上記のコードはアンマネージ例外で失敗します。 関数は完全に実行されて戻りますが、例外がトリガーされます。

ウィンドウを 1 つだけ作成すると、正しく動作します。 イベントハンドラー内に 2 つのウィンドウを作成するにはどうすればよいですか?

前もって感謝します!

私が試したこと:

両方のウィンドウをアクティブにしようとしましたが、うまくいきませんでした

解決策 1

UWP で複数のウィンドウが必要な場合は、「マルチインスタンス」アプリケーションが必要です。

マルチインスタンスのユニバーサル Windows アプリを作成する – UWP アプリケーション | Microsoft Learn[^]

コメント

タイトルとURLをコピーしました