Frame 에서 DockControlBar(CControlBar* pBar, CControlBar* pBarBase /* = NULL */) 를 상속받아 사용
void CControllerFrame::DockControlBar(CControlBar* pBar, CControlBar* pBarBase /* = NULL */)
{
if (pBarBase != NULL)
{
CRect rcBase;
DWORD dwStyleBase;
UINT nDockBarID;
RecalcLayout();
pBarBase->GetWindowRect(rcBase);
rcBase.OffsetRect(1,1);
dwStyleBase = pBarBase->GetBarStyle();
if (dwStyleBase & CBRS_ALIGN_TOP) nDockBarID = AFX_IDW_DOCKBAR_TOP;
else if (dwStyleBase & CBRS_ALIGN_BOTTOM) nDockBarID = AFX_IDW_DOCKBAR_BOTTOM;
else if (dwStyleBase & CBRS_ALIGN_LEFT) nDockBarID = AFX_IDW_DOCKBAR_LEFT;
else if (dwStyleBase & CBRS_ALIGN_RIGHT) nDockBarID = AFX_IDW_DOCKBAR_RIGHT;
else nDockBarID = 0;
/// MDI 일때
CMDIChildWnd::DockControlBar(pBar, nDockBarID, &rcBase);
/// SDI일때
/// CFrameWnd::DockControlBar(pBar, nDockBarID, &rcBase);
}
else
{
/// MID 일때
CMDIChildWnd::DockControlBar(pBar);
/// SDI 일때
CFrameWnd::DockControlBar(pBar);
}
}
Frame 에서 Toolbar를 생성하는 부분에 초기 생성되는 Bar를 넣고 그 위에 추가로 생성되는 Bar를 입력
OnCreate(LPCREATESTRUCT lpCreateStruct)
{
.....
/// pBarBase 가 NULL 이기 때문에 상위 Class 인 DockControlBar 호출
DockControlBar(&m_wndToolBar);
/// 재정의한 함수 적용후 호출
DockControlBar( &m_wndEventToolBar, &m_wndToolBar);
.....
}
출처 : Tong - 공원님의 ┣ ★ 먹고사는일(VC++)통