WinFormIntegration サンプル : MFC アプリケーションで WinForms ユーザー コントロールをホストする方法
更新 : 2007 年 11 月
このサンプルでは、MFC アプリケーションで WinForm ユーザー コントロールをダイアログまたはビューとしてホストする方法を説明します。
サンプルは、次のような 3 つの MFC 拡張 DLL、2 つの WinForms ユーザー コントロール、および 1 つのメイン MFC MDI app で構成されます。
EXTDLL1 – CWinFormsView を使用して、WinFormUserControlView1 ユーザー コントロールを MFC MDI app 内部に CView ウィンドウとしてホストします。また、コマンド ルーティングを使用して WinForms ユーザー コントロールにメッセージを送信します。
EXTDLL2 – WinForms ユーザー コントロールを既存の CView ウィンドウ内部にスタティック コントロールとしてホストする方法を示します。
EXTDLL3 – CDialog と CWinFormsDialog を使用することも含めて、WinForms ユーザー コントロールが MFC ダイアログでホストされる異なる方法をカプセル化します。
WinFormUserControl1 – 共通のコントロールを追加された簡単な WinForms ユーザー コントロール。
WinFormUserControlView1 – MFC コマンド ルーティングとビュー通知に参加する Microsoft::VisualC::MFC::IView インターフェイスおよび Microsoft::VisualC::MFC::ICommandTarget インターフェイスを実装する WinForms ユーザー コントロール。これは、MFC を使用してファイルを保存して開く基本テキスト エディタ (複数行の .NET TextBox コントロールを使用する) です。
MFC04 – これは、MFC 拡張 DLL を読み込むメイン MFC MDI app で、これらを異なる MFC doc テンプレートとして追加します。
サンプルとそのインストール手順を取得するには
Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。
詳細については、「サンプル ファイルの格納場所」を参照してください。
使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。
サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。
サンプルをビルドして実行するには
プロジェクトをビルドするには、MFC04.sln を開いて、[ビルド] メニューの [ソリューションのビルド] を選択します。
異なるシナリオを実行するには、app を起動して、[File] メニューの [New] を選択します。次に、CView、CFormView、または Dialogs のいずれかのテンプレートを選択します。
CView テンプレートは、編集可能な .NET 複数行編集ボックスを使用して CWinFormsView を開きます。また、このテキストをファイルに保存し、それを MFC の [Save] メニュー項目および [Open] メニュー項目を使用して再び読み込むことができます。"Save" 機能は、WinForms で WinForms StatusStrip の [Save Changes] ドロップダウン ボタンを選択することで起動できます。MFC の [CViewCmds] の [Command1] メニュー項目を選択すると、ホストされる WinForms UserControl への MFC コマンド ルーティングを説明する StatusStrip 内のテキストが更新されます。
CFormView テンプレートは、上記の WinForms UserControl と同じですが、CFormView リソースの内部でホストされる点が異なります。このテンプレートではホスト コードだけが提供されています。"Save" 機能と "Open" 機能は実装されていません。
Dialogs テンプレートは、CDialog 起動モーダルの内部、CDialog 起動モードレスの内部、CWinFormsDialog 起動モーダルとして、および CWinFormsDialog 起動モードレスとして、などのシナリオでホストされる WinForms UserControl を示すビューです。CWinFormsDialog の例では、MFC 機能の WinForms コントロール イベントへのフックを示します。これらの例は、文字列を CString を使用して System::String^ 変換演算子に渡す方法も示しています。
必要条件
サポートされているオペレーティング システム: Windows Server 2003、Windows XP