2 つのプロジェクトがあります。- /clr を使用するように設定されたいくつかのプロジェクト ファイルを使用して C++ で記述された私のアプリケーション - いくつかのフォームを含む私の C# WPF コントロール ライブラリ
C++ アプリケーションでは、C# dll からフォームを読み込んで STAThread に表示し、バックグラウンドで他のネイティブ処理を実行します。
C++ アプリケーションで C# フォームからフォーム イベントを処理したいと考えています。フォームを起動するためのコードは次のとおりです。
using namespace System::Windows;
using namespace System::Windows::Controls;
using namespace MyProject::Interface::Views;
public ref class MyProjectApplication : public Application
{
};
[STAThread]
void ManagedMain()
{
CLILicenseView^ winLicenseAgreement = gcnew CLILicenseView();
MyProjectApplication^ MyProjectCLI = gcnew MyProjectApplication();
MyProjectCLI->Run(winLicenseAgreement);
}
私の元のフォームは「License.xaml」と呼ばれ、イベントの処理に役立つかもしれないと思ったので、それを継承してイベントをオーバーライドしようとしましたが、何をしているのかわかりません。
using namespace System;
using namespace System::Windows;
using namespace System::Windows::Controls;
using namespace MyProject::Interface::Views;
namespace MyProject
{
public class CLILicenseView : License
{
public void CLILicenseView()
{
//
}
}
}
これが最善の方法ですか? そうでない場合、C++ アプリケーションからフォームイベント (つまり、ボタンのクリック) を処理するにはどうすればよいですか?