次の方法で共有


派生ウィンドウ クラス

CWndから直接ウィンドウを作成したり、CWndから新しいウィンドウ クラスを派生させたりすることができます。 通常、独自のカスタム ウィンドウを作成する方法です。 ただし、フレームワーク プログラムで使用されるほとんどのウィンドウは、MFC によって提供される CWnd派生フレーム ウィンドウ クラスの 1 つから作成されます。

フレーム ウィンドウ クラス

CFrameWnd
1 つのドキュメントとそのビューをフレームする SDI フレーム ウィンドウに使用されます。 フレーム ウィンドウは、アプリケーションのメイン フレーム ウィンドウと、現在のドキュメントのフレーム ウィンドウの両方です。

CMDIFrameWnd
MDI アプリケーションのメイン フレーム ウィンドウとして使用されます。 メイン フレーム ウィンドウは、すべての MDI ドキュメント ウィンドウのコンテナーであり、メニュー バーを共有します。 MDI フレーム ウィンドウは、デスクトップに表示される最上位のウィンドウです。

CMDIChildWnd
MDI メイン フレーム ウィンドウで開かれた個々のドキュメントに使用されます。 各ドキュメントとそのビューは、MDI メイン フレーム ウィンドウに含まれる MDI 子フレーム ウィンドウで囲まれます。 MDI 子ウィンドウは一般的なフレームウィンドウとよく似ていますが、デスクトップではなく MDI フレームウィンドウ内に存在します。 ただし、MDI 子ウィンドウには独自のメニュー バーがありません。 含まれる MDI フレーム ウィンドウのメニューバーを共有する必要があります。

詳細については、「 フレーム ウィンドウ」を参照してください。

他のウィンドウ クラスはCWndから派生した

フレーム ウィンドウに加えて、ウィンドウのいくつかの主要なカテゴリは、 CWndから派生します。

  • ビュー:
    ビューは、 CWnd派生クラス CView (またはその派生クラスの 1 つ) を使用して作成されます。 ビューはドキュメントに添付され、ドキュメントとユーザーの間の仲介役として機能します。 ビューは、通常、SDI フレーム ウィンドウや MDI 子フレーム ウィンドウのクライアント領域(ツールバーやステータスバーで覆われていない部分を含む)を占める子ウィンドウです。ただし、MDI 子ウィンドウではありません。

  • ダイアログ ボックス:
    ダイアログ ボックスは、 CWnd派生クラス CDialogを使用して作成されます。

  • フォーム:
    ダイアログ ボックスなどのダイアログ テンプレート リソースに基づくフォーム ビューは、クラス CFormViewCRecordView、または CDaoRecordViewを使用して作成されます。

  • コントロール:
    ボタン、リスト ボックス、コンボ ボックスなどのコントロールは、 CWndから派生した他のクラスを使用して作成されます。 コントロールに関するトピックを参照してください。

  • コントロール バー:
    コントロールを含む子ウィンドウ。 たとえば、ツール バーやステータス バーがあります。 「コントロール バー」を参照してください。

ウィンドウ クラス階層

MFC リファレンスの MFC 階層グラフ参照してください。 ビューについては、 ドキュメント/ビュー アーキテクチャで説明します。 ダイアログ ボックスについては、 ダイアログ ボックスで説明します。

独自の Special-Purpose ウィンドウ クラスの作成

クラス ライブラリによって提供されるウィンドウ クラスに加えて、特別な目的の子ウィンドウが必要な場合があります。 このようなウィンドウを作成するには、独自の CWnd派生クラスを作成し、フレームまたはビューの子ウィンドウにします。 フレームワークは、ドキュメント フレーム ウィンドウのクライアント領域の範囲を管理することを覚えておいてください。 ほとんどのクライアント領域はビューによって管理されますが、コントロール バーや独自のカスタム ウィンドウなどの他のウィンドウでは、その領域がビューと共有される場合があります。 フレーム ウィンドウのクライアント領域に子ウィンドウを配置するために、 CView および CControlBar クラスのメカニズムを操作する必要がある場合があります。

ウィンドウの作成 では、ウィンドウ オブジェクトの作成と、そのオブジェクトが管理するウィンドウについて説明します。

こちらも参照ください

ウィンドウ オブジェクト