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);
.....
}
'먹고 사는 일 > VC++' 카테고리의 다른 글
Control 배경 삭제 (0) | 2010.06.25 |
---|---|
프로그램에서 Process 실행하기(exe) (0) | 2010.06.25 |
창 움직이기 (0) | 2010.06.25 |
PtInRect (0) | 2010.06.25 |
메뉴 띄우기 (0) | 2010.06.25 |