Tips3 ツールバーの追加方法

前のTips 次のTips


 MFCのフレームウィンドウにもうひとつのツールバーを追加する方法を説明します。

 追加手順は以下のようになります。

  1. 新規ツールバーのリソースを作成する。
  2. 表示メニューに新規ツールバー用のメニューを追加する。
  3. CMainFrame に新規ツールバーのメンバ変数を追加する。
  4. CMainFrame::OnCraete で新規ツールバーを生成する。
  5. メニューのハンドラを実装する。

 以下、詳細を記述します。

  1. 新規ツールバーのリソースを作成する。

     VC++の Developper Studio で新規ツールバーを作成する。

  2. 表示メニューに新規ツールバー用のメニューを追加する。

     表示メニューに新規ツールバーのためのメニューを追加する。コマンドIDは ID_VIEW_TOOLBAR2 とかにする。さらに、クラスウィザードでコマンドハンドラ、 コマンドUIの更新用ハンドラを定義する。

  3. CMainFrame に新規ツールバーのメンバ変数を追加する。

        class CMainFrame : public CFrameWnd
        {
            .....
            CToolBar    m_wndToolBar2;      //  新規ツールバーのオブジェクト
            .....
        }
    

  4. CMainFrame::OnCraete で新規ツールバーを生成する。

        int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
        {
            .....
            if (!m_wndToolBar2.Create(this) ||                  //  新規ツールバーインスタンスを生成
                !m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2))       //  リソースを読み込む
            {
                TRACE0("Failed to create toolbar\n");
                return -1;      // fail to create
            }
            .....
            m_wndToolBar2.SetBarStyle(m_wndToolBar2.GetBarStyle() |     //  スタイルを設定する
                CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
            .....
            m_wndToolBar2.EnableDocking(CBRS_ALIGN_ANY);                //  ドッキングモードを設定
            .....
            DockControlBar(&m_wndToolBar2);                             //  フレームウィンドウにドッキングする
            .....
        }
    

  5. メニューのハンドラを実装する。

        void CMainFrame::OnViewToolbar2() 
        {
            ShowControlBar(&m_wndToolBar2, (m_wndToolBar2.GetStyle() & WS_VISIBLE) == 0, FALSE);
        }
        
        void CMainFrame::OnUpdateViewToolbar2(CCmdUI* pCmdUI) 
        {
            pCmdUI->SetCheck((m_wndToolBar2.GetStyle() & WS_VISIBLE) != 0);
        }
    


前のTips 次のTips 津田伸秀 のホームページに戻る。

Last Updated on 24-Aug-1996, Copyright (c) 1996 by Nobuhide Tsuda, All Right Reserved.
このホームページに関するご質問、ご要望、バグレポート等は  Nobuhide_Tsuda@jsn.justnet.or.jp までメールをいただければ幸いです。