인터페이스 요소

비고

MFC(Microsoft Foundation Classs) 라이브러리는 계속 지원됩니다. 그러나 더 이상 기능을 추가하거나 설명서를 업데이트하지 않습니다.

이 문서에서는 Visual Studio 2008 SP1에서 도입된 인터페이스 요소에 대해 설명하고 이전 버전의 라이브러리와의 차이점도 설명합니다.

다음 그림에서는 새 인터페이스 요소를 사용하여 빌드된 애플리케이션을 보여 줍니다.

MFC 기능 팩 예제 애플리케이션입니다.

창 도킹

창 도킹 기능은 Visual Studio 그래픽 사용자 인터페이스에서 사용하는 창 도킹과 유사합니다.

컨트롤 막대가 이제 패널입니다.

이제 컨트롤 막대를 창이라고 하며 CBasePane 클래스에서 파생됩니다. 이전 버전의 MFC에서는 컨트롤 막대의 기본 클래스가 였습니다 CControlBar.

애플리케이션 주 프레임 창은 일반적으로 CFrameWndEx 클래스 또는 CMDIFrameWndEx 클래스로 표시됩니다. 주 프레임을 도크 사이트라고 합니다. 페인에는 도킹 사이트, 도킹 바 또는 미니 프레임 윈도우의 세 가지 부모 유형 중 하나가 있을 수 있습니다.

창에는 크기 조정이 불가능하고 크기 조정 가능한 두 가지 유형이 있습니다. 상태 표시줄 및 도구 모음과 같은 크기 조정 가능한 창은 분할기 또는 슬라이더를 사용하여 크기를 조정할 수 있습니다. 크기 조정 가능한 창은 컨테이너를 형성할 수 있습니다(한 창은 다른 창에 도킹되어 둘 사이에 분할자를 만들 수 있음). 그러나 크기 조정 가능한 창은 도킹 막대에 연결(도킹)할 수 없습니다.

애플리케이션에서 크기 조정이 불가능한 창을 사용하는 경우 CPane 클래스에서 파생합니다. 애플리케이션에서 크기 조정 가능한 창을 사용하는 경우 CDockablePane 클래스에서 파생합니다.

도크 사이트

도크 사이트(또는 주 프레임 창)는 애플리케이션의 모든 창과 미니 프레임 창을 소유합니다. Dock 사이트에는 CDockingManager 멤버가 포함되어 있습니다. 이 멤버는 Dock 사이트에 속하는 모든 창의 목록을 유지 관리합니다. 목록의 시작 부분에 도크 사이트의 바깥 가장자리에서 만든 창이 배치되도록 목록의 순서가 지정됩니다. 프레임워크가 도크 사이트를 다시 그릴 때 이 목록을 반복하고 각 창의 레이아웃을 조정하여 도크 사이트의 현재 경계 사각형을 포함합니다. 호출 AdjustDockingLayout 하거나 RecalcLayout 도킹 레이아웃을 조정해야 하는 경우 프레임워크는 이 호출을 도킹 관리자로 리디렉션합니다.

도크 바

각 주 프레임 창은 테두리를 따라 도크 막대 를 배치할 수 있습니다. 도크 막대는 CDockSite 클래스에 속하는 창입니다. 도크 막대는 도구 모음과 같이 CPane에서 파생된 개체를 허용할 수 있습니다. 주 프레임 창이 초기화될 때 도크 막대를 만들려면 .를 호출합니다 EnableDocking. 자동 숨기기 막대를 사용하도록 설정하려면 .를 호출 EnableAutoHideBars합니다. EnableAutoHideBars 는 CAutoHideDockSite 개체를 만들고 각 도크 막대 옆에 배치합니다.

각 도크 막대는 도크 행으로 나뉩니다. Dock 행은 CDockingPanesRow 클래스로 표시됩니다. 각 도크 행에는 도구 모음 목록이 포함되어 있습니다. 사용자가 도구 모음을 도킹하거나 동일한 도크 막대 내에서 도구 모음을 한 행에서 다른 행으로 이동하는 경우 프레임워크는 새 행을 만들고 그에 따라 도크 막대의 크기를 조정하거나 도구 모음을 기존 행에 배치합니다.

미니 프레임 윈도우

부동 창은 미니 프레임 창에 있습니다. 미니 프레임 창은 CMDITabInfo 클래스 (하나의 창만 포함할 수 있는)와 CMultiPaneFrameWnd 클래스 (여러 창을 포함할 수 있는)의 두 클래스로 표시됩니다. 코드에서 창을 부동하려면 CBasePane::FloatPane을 호출합니다. 창이 부동하면 프레임워크는 자동으로 미니 프레임 창을 만들고 해당 미니 프레임 창은 부동 창의 부모가 됩니다. 부동 창이 도킹되면 프레임워크는 해당 부모를 다시 설정하며, 부동 창은 도크 막대(도구 모음의 경우) 또는 도크 사이트(크기 조정 가능한 창의 경우)가 됩니다.

창 나누기

창 구분선(명명된 슬라이더 또는 분할자)은 CPaneDivider 클래스로 표시됩니다. 사용자가 창을 도킹할 때 프레임워크는 창이 도킹 사이트 또는 다른 창에 도킹되었는지 여부에 관계없이 창 구분자를 만듭니다. 창이 도크 사이트에 도킹되면 창 분할은 기본 창 구분선이라고 합니다. 기본 창 구분선은 도킹 사이트의 모든 도킹 창 레이아웃을 담당합니다. Dock 관리자는 기본 창 구분선 목록과 창 목록을 유지 관리합니다. Dock 관리자는 모든 도킹 창의 레이아웃을 담당합니다.

컨테이너

크기 조정 가능한 모든 창은 서로 도킹될 때 컨테이너에서 유지 관리됩니다. 컨테이너는 CPaneContainer 클래스로 표시됩니다. 각 컨테이너에는 왼쪽 창, 오른쪽 창, 왼쪽 하위 컨테이너, 오른쪽 하위 컨테이너 및 왼쪽과 오른쪽 부분 사이의 분할에 대한 포인터가 있습니다. (왼쪽오른쪽 은 물리적 측면을 참조하는 것이 아니라 트리 구조의 분기를 식별합니다.) 이러한 방식으로 창과 분할자 트리를 빌드하여 함께 크기를 조정할 수 있는 복잡한 창 레이아웃을 달성할 수 있습니다. 클래스는 CPaneContainer 컨테이너 트리를 유지 관리합니다. 또한 이 트리에 있는 창과 슬라이더의 두 목록을 유지 관리합니다. 창 컨테이너 관리자는 일반적으로 여러 창을 포함하는 기본 슬라이더 및 미니 프레임 창에 포함됩니다.

컨트롤 막대 자동 숨기기

기본적으로 각 CDockablePane 기능은 자동 숨기기 기능을 지원합니다. 사용자가 캡션 CDockablePane의 고정 단추를 클릭하면 프레임워크가 창을 자동 숨기기 모드로 전환합니다. 클릭을 처리하기 위해 프레임워크는 개체와 연결된 CMFCAutoHideBar 클래스CMFCAutoHideButton 클래스CMFCAutoHideBar 만듭니다. 프레임워크는 CMFCAutoHideBar에 새 항목을 배치합니다. 프레임워크는 도구 모음에도 CMFCAutoHideButton 연결합니다. CDockingManager 클래스CDockablePane을 유지 관리합니다.

탭 컨트롤 막대 및 Outlook 막대

CMFCBaseTabCtrl 클래스는 분리 가능한 탭이 있는 탭 창의 기본 기능을 구현합니다. 개체를 CMFCBaseTabCtrl 사용하려면 애플리케이션에서 CBaseTabbedPane 클래스 를 초기화합니다. CBaseTabbedPaneCDockablePane에서 파생되고 CMFCBaseTabCtrl 객체에 대한 포인터를 유지합니다. CBaseTabbedPane 이를 통해 사용자는 탭 컨트롤 막대를 도킹하고 크기를 조정할 수 있습니다. CDockablePane::AttachToTabWnd를 사용하여 도킹 및 탭된 컨트롤 막대를 동적으로 만듭니다.

Outlook 막대 컨트롤은 탭 막대를 기반으로 하며 CMFCOutlookBar 클래스는 .에서 CBaseTabbedPane파생됩니다. Outlook 표시줄을 사용하는 방법에 대한 자세한 내용은 CMFCOutlookBar 클래스를 참조하세요.

참고하십시오

개념