ボタン

さて、コンポーネントギャラリにはないボタンの追加です。

まず、リソースのStrngTableを開き、StringTableに IDとキャプションを設定する。
IDはボタンに利用するIDなので、ID_BUTTON_1やID_BUTTON_HOGEとかがいいかも。
とりあえずID_BUTTON1とします。
で、キャプションは適当に。

そしたら、ボタン用のクラスを作成します。
作成方法は、ClassWizardでクラスの追加ボタンを押すか、 ClassViewで右クリックして クラスの追加を選択してください。

このとき、基本クラスはCButtonクラスになります。
ここではCButton1とします。

CButtonクラスを派生させたら、今度はCxxViewクラスに移ります。
まずはメンバ変数を作成します。
先ほどCButtonクラスから派生させたクラスを元に変数を作成します。
とりあえずここではm_btn1とします。

そして、CxxViewクラスでWindowメッセージハンドラの追加をします。
Windowメッセージハンドラの追加ダイアログがでたらWM_CREATEを追加してください。
すると、CxxView::OnCreate()関数が追加されます。
このクラスはCxxViewクラスが作られたときに呼ばれる関数です。

ここに、CButtonの派生クラスのインスタンスを作成するコードを記述します。
下記のように記述します。
ボタンの作成例
int CxxView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO: この位置に固有の作成用コードを追加してください
    m_btn1.Create("Button1",BS_PUSHBUTTON|WS_VISIBLE,CRect(210,10,260,40),this,ID_BUTTON1);

    return 0;
}

Create()関数
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
引数説明
lpszCaption ボタンに表示する文字列
dwStyle ボタンのスタイル
rect 表示位置とサイズ
pParentWnd 親コントロール
nID ボタンのID
もし、CButtonの派生クラスを作成しない場合は、CxxViewないでCButtonのオブジェクトを作成します。
それ以外は、ほとんど同じ方法で作成できると思います。