方法: Windows フォーム コントロールのプロパティとメソッドを呼び出す
CWinFormsView::GetControl は、WindowsControlLibrary1::UserControl1 へのポインターではなく、System.Windows.Forms.Control へのポインターを返すため、ユーザー コントロール型のメンバーを追加し、IView::OnInitialUpdate で初期化することをお勧めします。 これにより、m_ViewControl を使用してメソッドおよびプロパティを呼び出すことができます。
このトピックは、前の手順の「方法: ダイアログ ボックスにユーザー コントロールおよびホストを作成する」および「方法: ユーザー コントロールを作成し、MDI ビューをホストする」を完了していることを前提としています。
MFC ホスト アプリケーションを作成するには
「方法: ユーザー コントロールを作成し、MDI ビューをホストする」で作成した MFC アプリケーションを開きます。
MFC02View.h で、CMFC02View クラス宣言のパブリック オーバーライド セクションに次の行を追加します。
gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;
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");
プロジェクトをビルドして実行します。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
[デバッグ] メニューの [デバッグなしで開始] をクリックします。
これによってテキスト ボックスが初期化されます。