MDIアプリケーション

MDIアプリケーションの作成方法は、AppWizardでMDIを選択すれば作成できるのは当たり前です。
その後、MDIウィンドウにどのようにコントロールを追加するかを知らなければなりません。
でなくてはアプリケーションなんて作れないですから・・・
Delphiならビジュアルも簡単に作成できるのにと思うのですが、 VCではやはりインスタンスを自分で作っていかなければなりません。
とりあえず、ボタンとエディットを追加する例を記述します。

ボタンの追加

SDIとは違いCChildFrame,CMDIxxxAPP,CMDIhogeDoc,CMDIxxxViewクラスが存在します。
まぁ、名前からも察することができると思いますが、子ウィンドウのクラスです。
このなかのCMDIxxxViewクラスに記述すればできそうです。
コントロールの追加はSDIと同じで、OnCreate()で行えば良さそうなのでOnCreateで目的の コントロールのインスタンスを作成します。

CButtonをメンバ変数として登録します。(m_btnとします)
次にボタンのIDを設定します。(ResourceViewのStringTableで追加。IDS_BTNとします)
CChildFrame::OnCreate()関数内でインスタンスを作成します。

エディットの追加

さて、エディットを追加しましょう。
エディットはCEditクラスを利用することで作成できます。
ボタンと同様、CMDIxxxViewクラス内で作成します。

CEditをメンバ変数として登録します。(m_editとします)
次にエディットのIDを設定します。(ResourceViewのStringTableで追加。IDS_EDITとします)
CChildFrame::OnCreate()関数内でインスタンスを作成します。

CEdit::Create()関数
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
引数説明
dwStyle エディットのスタイル
rect 表示位置とサイズ
pParentWnd 親コントロール
nID エディットのID

取り合えず入力はできます。

作成例

下記に作成の例を記述しておきます、

作成例
CMDIxxxView.h
・
・
・
// インプリメンテーション
public:
    CEdit m_edit1;
    CButton m_btn1;
・
・
・

〜〜〜〜〜
〜〜〜〜〜

CMDIxxxView.cpp
・
・
・
int CMDIxxxView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO: この位置に固有の作成用コードを追加してください
    // TODO: この位置に固有の作成用コードを追加してください
    m_btn1.Create("Button &1", WS_VISIBLE,
                  CRect(10, 10, 100, 40),
                  this, IDS_BTN1);

    m_edit1.Create(WS_VISIBLE,
                   CRect(10, 60, 100, 100),
                   this, IDS_EDIT1);

    return 0;
}
・
・
・