次の方法で共有


方法: 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 フォーム ユーザー コントロールのホスト