次の方法で共有


MDI サンプル:ドキュメント/ビュー アーキテクチャを使用しない MDI を示します

MDI サンプルでは、ドキュメント/ビュー アーキテクチャを使用せずに、MFC のマルチ ドキュメント インターフェイス (MDI: Multiple-Document Interface) サポートを使用します。

MDI のほかのサンプルについては、MDIDOCVW を参照してください。

また、MDI では、Microsoft Windows タイマー、CColorDialogCBitmap、およびウィンドウの既定のカーソルの変更についても示します。

セキュリティに関するメモセキュリティに関するメモ

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

サンプルとそのインストール手順を取得するには

Visual Studio のサンプルにアクセスするには

  • [ヘルプ] メニューの [サンプル] をクリックします。

    既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。

  • このサンプルの最新版および他のサンプルの一覧については、MSDN Web サイト上で Visual Studio サンプル 」を参照してください。

サンプルのビルドと実行

MDI サンプルをビルドおよび実行するには

  1. ソリューション mdi.sln を開きます。

  2. [ビルド] メニューの [ビルド] をクリックします。

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

MDI サンプル アプリケーションは、親ウィンドウに 2 つの異なる種類の MDI 子ウィンドウが用意されています。ボールの周り; バウンド、バウンス ウィンドウ文字列「こんにちは, World!」を表示、こんにちは] ウィンドウなお、それぞれのウィンドウの複数のインスタンスを作成できます。

新しいバウンド (または 新しいこんにちはファイル メニューを新しい MDI 子ウィンドウを作成する] をクリックします。 両方の MDI 子ウィンドウは、ウィンドウがアクティブなときに表示するメニューを決定します。 両方のウィンドウの色 メニューがあります。 このメニューで色を選択すると、はずむボールや Hello テキストの色が更新されます。 [Custom] を選択すると、色のダイアログ ボックスが表示されます。このダイアログ ボックスでは、独自の色を選択できます。

[バウンス] ウィンドウもにボールが、画面内を移動する速度を選択できる 速度 メニューが。

[Bounce] ウィンドウを最小化した場合、静的なアイコンは表示されません。 代わりに、小さなボールがアイコン内ではずみます。 一方、[Hello] ウィンドウのアイコンは通常のアイコンになります。

ドキュメントやビューのない MDI

アプリケーション ウィザードで生成された MDI アプリケーションとは異なり、このサンプル アプリケーションは、ドキュメントやビューに対するフレームワークのサポートを使用しません。 つまり、サンプルではドキュメント テンプレートを使用せず、アプリケーションの InitInstanceAddDocTemplate を呼び出しません。

それでも、このアプリケーションはフレームワークの MDI サポートを十分に活用しています。 CMainFrame is derived from CMDIFrameWnd. CBounceWnd and CHelloWnd are derived from CMDIChildWnd. メニューのコマンドを ウィンドウ を左右に並べて表示] など、フレームワークの既定の実装に CMDIFrameWnd によって処理されます。

CBounceWndCHelloWndCreate をオーバーライドするが、オーバーライドはフレームワークの MDI サポートを活用するのには不要です。 Create のオーバーライドは、既定のカーソルとウィンドウのアイコンを変更する方法を示します。 既定のカーソルまたはアイコンをウィンドウの変更に新しい WNDCLASSAFXRegisterWndClass 呼び出しおよび名 WNDCLASSCreate の呼び出しで渡すことによって登録する必要があります。

Keywords

このサンプルでは、次のキーワードを使用します。

AfxGetInstanceHandle; AfxRegisterWndClass; CBitmap::CreateCompatibleBitmap; CCmdUI::SetCheck; CColorDialog::DoModal; CColorDialog::GetColor; CDC::BitBlt; CDC::CreateCompatibleDC; CDC::DeleteDC; CDC::DrawText; CDC::Ellipse; CDC::FillRect; CDC::GetDeviceCaps; CDC::SelectObject; CDC::SetBkColor; CDC::SetTextColor; CFrameWnd::LoadFrame; CFrameWnd::rectDefault; CGdiObject::DeleteObject; CMDIChildWnd::Create; CMenu::LoadMenu; CWinApp::InitInstance; CWnd::DestroyWindow; CWnd::GetClientRect; CWnd::GetCurrentMessage; CWnd::GetDC; CWnd::Invalidate; CWnd::KillTimer; CWnd::MessageBox; CWnd::OnCreate; CWnd::OnPaint; CWnd::OnSize; CWnd::OnTimer; CWnd::ReleaseDC; CWnd::SetTimer; CWnd::ShowWindow; CWnd::UpdateWindow; GetSysColor; LOWORD; LoadCursor; LoadIcon; MAKEINTRESOURCE; RGB; max; min

注意

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

MFC サンプル