MFCのSDIにてツールバーの追加

@ツールバーのリソースを追加する。
Aグローバルに近いところに変数を追加する。

CToolBar toolbar1;

BCMainFrame.cppを開き次を追加する

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	〜ここにいろいろあります〜
 
//--------------------------------------------------------------------------------------------------
	if (!toolbar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP		//←追加
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||	//←追加
		!toolbar1.LoadToolBar(IDR_TOOLBAR1))	//←ツールバーのID			//←追加
	{									//←追加
		TRACE0("Failed to create toolbar\n");					//←追加
		return -1;      // 作成に失敗						//←追加
	}									//←追加
//---------------------------------------------------------------------------------------------------
	// TODO: ツール バーをドッキング可能にしない場合は以下の3行を削除
	//       してください。
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	//  ドッキングモードを設定
//--------------------------------------------------------------
	toolbar1.EnableDocking(CBRS_ALIGN_ANY); 	//←追加  
	DockControlBar(&toolbar1); 			//←追加
//--------------------------------------------------------------
	return 0;
}

Cリソースのところでイベントの追加が可能です。

○補足 ツールバーの位置の設定
DockControlBarに値を入れると目的の位置に配置できます。

--------------
| m_wndToolBar |
--------------
| toolbar1 |
---------
↓↓↓↓↓↓
-----------------------
| m_wndToolBar | toolbar1 |
-----------------------

//---------------------------------------------------------------------
RecalcLayout();// コントロールバーを追加した際に呼んでおく。呼ばないとコントロールバーのサイズが正しく取れない。

CRect wndRect,tool1Rect;
m_wndToolBar.GetWindowRect(&wndRect);// ツールバーが画面のどこにいるかを取得

// コントロールバーのサイズを取得
CSize cz_wnd = m_wndToolBar.CalcFixedLayout(FALSE,TRUE);
CSize cz_tool1 = toolbar1.CalcFixedLayout(FALSE,TRUE);

// スタイルバーを新しく置く位置を設定
tool1Rect.left = wndRect.left + cz_wnd.cx;
tool1Rect.right = tool1Rect.left + cz_tool1.cx;
tool1Rect.top = wndRect.top;
tool1Rect.bottom = wndRect.bottom;

UINT FreeDock = 0;
toolbar1.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&toolbar1,FreeDock,&tool1Rect);
//---------------------------------------------------------------------



▲トップページ > Windows と C++