次の方法で共有


方法: Windows フォーム コントロールのプロパティとメソッドを呼び出す

CWinFormsView::GetControl は、WindowsControlLibrary1::UserControl1 へのポインターではなく、System.Windows.Forms.Control へのポインターを返すため、ユーザー コントロール型のメンバーを追加し、IView::OnInitialUpdate で初期化することをお勧めします。 これにより、m_ViewControl を使用してメソッドおよびプロパティを呼び出すことができます。

このトピックは、前の手順の「方法: ダイアログ ボックスにユーザー コントロールおよびホストを作成する」および「方法: ユーザー コントロールを作成し、MDI ビューをホストする」を完了していることを前提としています。

MFC ホスト アプリケーションを作成するには

  1. 方法: ユーザー コントロールを作成し、MDI ビューをホストする」で作成した MFC アプリケーションを開きます。

  2. MFC02View.h で、CMFC02View クラス宣言のパブリック オーバーライド セクションに次の行を追加します。

    gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;

  3. OnInitialupdate のオーバーライドを追加します。

    [プロパティ] ウィンドウを表示します (F4 キーを押します)。 クラス ビューを表示し (Ctrl キーと Shift キーを押しながら C キーを押し)、CMFC02View クラスを選択します。 [プロパティ] ウィンドウで、オーバーライドのアイコンを選択します。 OnInitialUpdate が表示されるまで一覧を下にスクロールします。 ドロップダウン リストをクリックし、[<追加> ] を選択します。 MFC02View.cpp で、 OnInitialUpdate 関数の本体が次のようになっていることを確認します。

    CWinFormsView::OnInitialUpdate();
    m_ViewControl = safe_cast<WindowsFormsControlLibrary1::UserControl1 ^>(this->GetControl());
    m_ViewControl->textBox1->Text = gcnew System::String("hi");
    
  4. プロジェクトをビルドして実行します。

    [ビルド] メニューの [ソリューションのビルド] をクリックします。

    [デバッグ] メニューの [デバッグなしで開始] をクリックします。

    これによってテキスト ボックスが初期化されます。

参照

その他の技術情報

MFC ビューとしての Windows フォーム ユーザー コントロールのホスト