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++