方法: 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");
プロジェクトをビルドして実行します。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
[デバッグ] メニューの [デバッグなしで開始] をクリックします。
これで、テキスト ボックスが初期化されます。