DOCKTOOL 샘플: 도킹 가능한 도구 모음 설명

업데이트: 2007년 11월

DOCKTOOL 샘플에서는 도킹 가능한 도구 모음에 대한 지원을 보여 줍니다. 도킹 가능한 도구 모음은 부모 창의 모든 면에 연결 또는 도킹될 수 있으며 CMiniFrameWnd를 사용하여 미니프레임 창 형태로 분리하거나 이동할 수 있습니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

DOCKTOOL 샘플을 빌드하고 실행하려면

  1. 솔루션 파일인 docktool.sln을 엽니다.

  2. 빌드 메뉴에서 빌드를 클릭합니다.

  3. 디버그 메뉴에서 디버깅하지 않고 시작을 클릭합니다.

도킹 가능한 도구 모음 지원

응용 프로그램에 도킹 가능한 도구 모음을 배치하려면 다음 세 단계를 수행해야 합니다.

  1. CFrameWnd::EnableDocking 함수를 사용하여 프레임 창 또는 대상의 도킹 기능을 활성화합니다. 하나의 DWORD 매개 변수는 도킹을 허용할 프레임 창의 면을 나타냅니다. 컨트롤 막대를 모든 면에 도킹하려면 EnableDockingCBRS_ALIGN_ANY를 전달합니다.

  2. 각 도구 모음에 대해 CControlBar::EnableDocking을 호출하여 도구 모음 또는 소스의 도킹 기능을 활성화합니다. 도구 모음이 도킹될 대상 면을 지정합니다. 지정된 면이 프레임 창의 도킹 가능한 면과 일치하지 않는 경우 도구 모음은 도킹되지 않고 이동식 도구 모음이 됩니다. 부동 도구 모음이 되면 프레임 창에 도킹될 수 없습니다.

  3. CFrameWnd::DockControlBar를 호출하여 프레임 창에 도구 모음을 도킹합니다. 반대로 프레임 창에서 도킹 가능한 도구 모음을 분리하려면 CFrameWnd::FloatControlBar를 호출합니다.

이 세 단계를 모두 수행하지 않으면 응용 프로그램에 표준 도구 모음이 나타납니다. 마지막 두 단계는 응용 프로그램에서 도킹 가능한 각 도구 모음에 대하여 수행해야 합니다.

응용 프로그램을 호출할 때마다 도킹 가능한 도구 모음의 상태(도킹 또는 부동)를 유지하려면 CControlBar::SetBarStyleCControlBar::GetBarStyle 함수를 사용하여 특정 컨트롤 막대의 설정을 검색하고 복원합니다. 일반적으로 이 정보는 CFrameWnd::SaveBarState를 사용하여 응용 프로그램의 .ini 파일에 저장되고 CFrameWnd::LoadBarState를 사용하여 검색됩니다.

키워드

이 샘플에서는 다음의 키워드를 보여 줍니다.

AfxGetApp, CArchive::IsStoring, CComboBox::Create, CComboBox::DeleteString, CComboBox::GetCount, CComboBox::InsertString, CComboBox::SetCurSel, CControlBar::GetBarStyle, CControlBar::SetBarStyle, CDialog::DoModal, CDocument::OnNewDocument, CFrameWnd::Create, CFrameWnd::DockControlBar, CFrameWnd::EnableDocking, CFrameWnd::LoadBarState, CFrameWnd::RecalcLayout, CFrameWnd::SaveBarState, CMenu::GetSubMenu, CMenu::LoadMenu, CMenu::TrackPopupMenu, CObject::AssertValid, CObject::Dump, CObject::Serialize, CRect::OffsetRect, CString::IsEmpty, CToolBar::Create, CToolBar::GetItemRect, CToolBar::LoadBitmap, CToolBar::SetButtonInfo, CToolBar::SetButtons, CView::GetDocument, CView::OnDraw, CWinApp::AddDocTemplate, CWinApp::InitInstance, CWinApp::LoadStdProfileSettings, CWinApp::OnFileNew, CWnd::ClientToScreen, CWnd::DoDataExchange, CWnd::FromHandlePermanent, CWnd::GetParentFrame, CWnd::GetStyle, CWnd::GetWindowPlacement, CWnd::GetWindowRect, CWnd::GetWindowText, CWnd::Invalidate, CWnd::IsZoomed, CWnd::OnClose, CWnd::OnCreate, CWnd::PreTranslateMessage, CWnd::SendMessage, CWnd::SetWindowPlacement, CWnd::SetWindowPos, CWnd::SetWindowText, CWnd::ShowWindow, GetProfileInt, GetProfileString, GetStockObject, HIWORD, LOWORD, LoadBitmap, WriteProfileString, wsprintf

참고:

이 샘플을 비롯한 일부 샘플은 Visual C++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다.

참고 항목

기타 리소스

MFC 샘플