다음을 통해 공유


CSplitterWnd 수업

여러 개의 창이 포함된 창인 분할자 창 기능을 제공합니다.

구문

class CSplitterWnd : public CWnd

멤버

공용 생성자

속성 설명
CSplitterWnd::CSplitterWnd 개체를 생성하기 위한 호출입니다 CSplitterWnd .

공용 메서드

이름 설명
CSplitterWnd::ActivateNext 다음 창 또는 이전 창 명령을 수행합니다.
CSplitterWnd::CanActivateNext 다음 창 또는 이전 창 명령이 현재 가능한지 확인합니다.
CSplitterWnd::Create 동적 분할자 창을 만들어 개체에 CSplitterWnd 연결하기 위해 호출합니다.
CSplitterWnd::CreateScrollBarCtrl 공유 스크롤 막대 컨트롤을 만듭니다.
CSplitterWnd::CreateStatic 정적 분할자 창을 만들어 개체에 CSplitterWnd 연결하기 위한 호출입니다.
CSplitterWnd::CreateView 분할자 창에서 창을 만들려면 호출합니다.
CSplitterWnd::DeleteColumn 분할자 창에서 열을 삭제합니다.
CSplitterWnd::DeleteRow 분할자 창에서 행을 삭제합니다.
CSplitterWnd::DeleteView 분할자 창에서 보기를 삭제합니다.
CSplitterWnd::DoKeyboardSplit 키보드 분할 명령(일반적으로 "창 분할")을 수행합니다.
CSplitterWnd::DoScroll 분할 창의 동기화된 스크롤을 수행합니다.
CSplitterWnd::DoScrollBy 분할 창을 지정된 픽셀 수만큼 스크롤합니다.
CSplitterWnd::GetActivePane 프레임의 포커스 또는 활성 보기에서 활성 창을 결정합니다.
CSplitterWnd::GetColumnCount 현재 창 열 수를 반환합니다.
CSplitterWnd::GetColumnInfo 지정된 열에 대한 정보를 반환합니다.
CSplitterWnd::GetPane 지정된 행과 열의 창을 반환합니다.
CSplitterWnd::GetRowCount 현재 창 행 수를 반환합니다.
CSplitterWnd::GetRowInfo 지정된 행에 대한 정보를 반환합니다.
CSplitterWnd::GetScrollStyle 공유 스크롤 막대 스타일을 반환합니다.
CSplitterWnd::IdFromRowCol 지정된 행과 열에 있는 창의 자식 창 ID를 반환합니다.
CSplitterWnd::IsChildPane 창이 현재 이 분할자 창의 자식 창인지 여부를 확인하려면 호출합니다.
CSplitterWnd::IsTracking 분할 막대가 현재 이동 중인지 여부를 확인합니다.
CSplitterWnd::RecalcLayout 행 또는 열 크기를 조정한 후 분할자 창을 다시 표시하도록 호출합니다.
CSplitterWnd::SetActivePane 창을 프레임의 활성 창으로 설정합니다.
CSplitterWnd::SetColumnInfo 지정된 열 정보를 설정하기 위한 호출입니다.
CSplitterWnd::SetRowInfo 지정된 행 정보를 설정하기 위한 호출입니다.
CSplitterWnd::SetScrollStyle 분할자 창의 공유 스크롤 막대 지원에 대한 새 스크롤 막대 스타일을 지정합니다.
CSplitterWnd::SplitColumn 프레임 창이 세로로 분할되는 위치를 나타냅니다.
CSplitterWnd::SplitRow 프레임 창이 가로로 분할되는 위치를 나타냅니다.

보호된 메서드

속성 설명
CSplitterWnd::OnDraw 분할자 창을 그리기 위해 프레임워크에서 호출됩니다.
CSplitterWnd::OnDrawSplitter 분할 창의 이미지를 렌더링합니다.
CSplitterWnd::OnInvertTracker 분할 창의 이미지를 프레임 창과 동일한 크기와 모양으로 렌더링합니다.

설명

창은 일반적으로 애플리케이션별 개체에서 CView파생되지만 적절한 자식 창 ID를 가진 모든 CWnd 개체일 수 있습니다.

CSplitterWnd 개체는 일반적으로 부모 CFrameWnd 또는 CMDIChildWnd 개체에 포함됩니다. CSplitterWnd 다음 단계를 사용하여 개체를 만듭니다.

  1. 부모 프레임에 CSplitterWnd 멤버 변수를 포함합니다.

  2. 부모 프레임의 멤버 함수를 재정의 CFrameWnd::OnCreateClient 합니다.

  3. 재정의된 OnCreateClient내에서 .의 또는 CreateStatic 멤버 함수를 Create 호출합니다CSplitterWnd.

멤버 함수를 Create 호출하여 동적 분할자 창을 만듭니다. 동적 분할자 창은 일반적으로 동일한 문서의 여러 개별 창 또는 보기를 만들고 스크롤하는 데 사용됩니다. 프레임워크는 분할자의 초기 창을 자동으로 만듭니다. 그러면 프레임워크는 사용자가 분할자 창의 컨트롤을 작동할 때 추가 창을 만들고, 크기를 조정하고, 삭제합니다.

호출 Create할 때 창이 너무 작아서 완전히 표시되지 않는 시기를 결정하는 최소 행 높이와 열 너비를 지정합니다. 호출Create한 후에는 멤버 함수 및 SetRowInfo 멤버 함수를 호출하여 이러한 최소값을 SetColumnInfo 조정할 수 있습니다.

또한 멤버 함수와 SetRowInfo 멤버 함수를 사용하여 SetColumnInfo 열에 대해 "이상적인" 너비를 설정하고 행에 "이상적" 높이를 설정합니다. 프레임워크에서 분할자 창을 표시하면 먼저 부모 프레임과 분할자 창이 표시됩니다. 그런 다음 프레임워크는 분할자 창의 클라이언트 영역의 왼쪽 위에서 오른쪽 아래 모서리까지 작업하는 이상적인 차원에 따라 열과 행의 창을 배치합니다.

동적 분할자 창의 모든 창은 동일한 클래스여야 합니다. 동적 분할자 창을 지원하는 친숙한 응용 프로그램에는 Microsoft Word 및 Microsoft Excel이 포함됩니다.

멤버 함수를 CreateStatic 사용하여 정적 분할자 창을 만듭니다. 사용자는 정적 분할자 창에서 창의 크기만 변경할 수 있으며 숫자나 순서는 변경할 수 없습니다.

정적 분할기를 만들 때 모든 정적 분할자의 창을 특별히 만들어야 합니다. 부모 프레임의 OnCreateClient 멤버 함수가 반환되기 전에 모든 창을 만들거나 프레임워크가 창을 올바르게 표시하지 않는지 확인합니다.

멤버 함수는 CreateStatic 최소 행 높이와 열 너비가 0인 정적 분할자를 자동으로 초기화합니다. 호출 Create후 및 SetRowInfo 멤버 함수를 호출하여 이러한 최소값을 SetColumnInfo 조정합니다. 또한 원하는 이상적인 창 차원을 나타내기 위해 호출 CreateStatic 한 후 사용합니다.SetColumnInfo SetRowInfo

정적 분할기의 개별 창은 종종 다른 클래스에 속합니다. 정적 분할기 창의 예는 그래픽 편집기 및 Windows 파일 관리자를 참조하세요.

분할자 창은 특수 스크롤 막대를 지원합니다(창에 있을 수 있는 스크롤 막대 제외). 이러한 스크롤 막대는 개체의 CSplitterWnd 자식이며 창과 공유됩니다.

분할자 창을 만들 때 이러한 특수 스크롤 막대를 만듭니다. 예를 들어 CSplitterWnd 하나의 행, 두 개의 열이 있는 WS_VSCROLL 스타일은 두 창에서 공유하는 세로 스크롤 막대를 표시합니다. 사용자가 스크롤 막대 WM_VSCROLL 를 이동하면 메시지가 두 창으로 전송됩니다. 창이 스크롤 막대 위치를 설정하면 공유 스크롤 막대가 설정됩니다.

분할자 창에 대한 자세한 내용은 Technical Note 29를 참조하세요.

동적 분할자 창을 만드는 방법에 대한 자세한 내용은 다음을 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CSplitterWnd

요구 사항

머리글: afxext.h

CSplitterWnd::ActivateNext

다음 창 또는 이전 창 명령을 수행하기 위해 프레임워크에서 호출됩니다.

virtual void ActivateNext(BOOL bPrev = FALSE);

매개 변수

bPrev
활성화할 창을 나타냅니다. TRUE 이전의 경우 FALSE 을 선택합니다.

설명

이 멤버 함수는 클래스에서 구현에 CView 위임 CSplitterWnd 하는 데 사용되는 상위 수준 명령입니다.

CSplitterWnd::CanActivateNext

프레임워크에서 호출하여 다음 창 또는 이전 창 명령이 현재 가능한지 확인합니다.

virtual BOOL CanActivateNext(BOOL bPrev = FALSE);

매개 변수

bPrev
활성화할 창을 나타냅니다. TRUE 이전의 경우 FALSE 을 선택합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 멤버 함수는 클래스에서 구현에 CView 위임 CSplitterWnd 하는 데 사용되는 상위 수준 명령입니다.

CSplitterWnd::Create

동적 분할자 창을 만들려면 멤버 함수를 호출합니다 Create .

virtual BOOL Create(
    CWnd* pParentWnd,
    int nMaxRows,
    int nMaxCols,
    SIZE sizeMin,
    CCreateContext* pContext,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,
    UINT nID = AFX_IDW_PANE_FIRST);

매개 변수

pParentWnd
분할자 창의 부모 프레임 창입니다.

nMaxRows
분할자 창의 최대 행 수입니다. 이 값은 2를 초과하면 안됩니다.

nMaxCols
분할자 창의 최대 열 수입니다. 이 값은 2를 초과하면 안됩니다.

sizeMin
창이 표시될 수 있는 최소 크기를 지정합니다.

pContext
구조체에 대한 포인터입니다 CCreateContext . 대부분의 경우 부모 프레임 창에 pContext 전달될 수 있습니다.

dwStyle
창 스타일을 지정합니다.

nID
창의 자식 창 ID입니다. 분할자 창이 다른 분할자 창 내에 중첩되지 않는 한 ID가 될 AFX_IDW_PANE_FIRST 수 있습니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

다음 단계를 수행하여 부모 CFrameWnd 또는 CMDIChildWnd 개체에 포함 CSplitterWnd 할 수 있습니다.

  1. 부모 프레임에 CSplitterWnd 멤버 변수를 포함합니다.

  2. 부모 프레임의 멤버 함수를 재정의 CFrameWnd::OnCreateClient 합니다.

  3. 재정OnCreateClient의된 Create 내에서 멤버 함수를 호출합니다.

부모 프레임 내에서 분할자 창을 만들 때 부모 프레임의 pContext 매개 변수를 분할자 창에 전달합니다. 그렇지 않으면 이 매개 변수는 .일 수 있습니다 NULL.

동적 분할자 창의 초기 최소 행 높이 및 열 너비는 매개 변수에 sizeMin 의해 설정됩니다. 창이 너무 작아서 전체적으로 표시할 수 없는지 여부를 결정하는 이러한 최소값은 멤버 함수와 SetColumnInfo 함께 SetRowInfo 변경할 수 있습니다.

동적 분할자 창에 대한 자세한 내용은 여러 문서 유형, 보기 및 프레임 창, Technical Note 29CSplitterWnd 클래스 개요 문서의 "Splitter Windows"를 참조하세요.

예시

// the following function is created by the MFC Application Wizard
// when you select Split window from the User Interface Features tab:
BOOL CMyChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext *pContext)
{
   return m_wndSplitter.Create(this,
                               2, 2,          // TODO: adjust the number of rows, columns
                               CSize(10, 10), // TODO: adjust the minimum pane size
                               pContext);
}

CSplitterWnd::CreateScrollBarCtrl

공유 스크롤 막대 컨트롤을 만들기 위해 프레임워크에서 호출됩니다.

virtual BOOL CreateScrollBarCtrl(
    DWORD dwStyle,
    UINT nID);

매개 변수

dwStyle
창 스타일을 지정합니다.

nID
창의 자식 창 ID입니다. 분할자 창이 다른 분할자 창 내에 중첩되지 않는 한 ID가 될 AFX_IDW_PANE_FIRST 수 있습니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

스크롤 막대 옆에 추가 컨트롤을 포함하도록 재정 CreateScrollBarCtrl 의합니다. 기본 동작은 일반 Windows 스크롤 막대 컨트롤을 만드는 것입니다.

CSplitterWnd::CreateStatic

정적 분할자 창을 만들려면 멤버 함수를 호출합니다 CreateStatic .

virtual BOOL CreateStatic(
    CWnd* pParentWnd,
    int nRows,
    int nCols,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE,
    UINT nID = AFX_IDW_PANE_FIRST);

매개 변수

pParentWnd
분할자 창의 부모 프레임 창입니다.

nRows
rows 수입니다. 이 값은 16을 초과하면 안됩니다.

nCols
columns 수입니다. 이 값은 16을 초과하면 안됩니다.

dwStyle
창 스타일을 지정합니다.

nID
창의 자식 창 ID입니다. 분할자 창이 다른 분할자 창 내에 중첩되지 않는 한 ID가 될 AFX_IDW_PANE_FIRST 수 있습니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

A CSplitterWnd 는 일반적으로 다음 단계를 수행하여 부모 CFrameWnd 또는 CMDIChildWnd 개체에 포함됩니다.

  1. 부모 프레임에 CSplitterWnd 멤버 변수를 포함합니다.

  2. 부모 프레임의 멤버 함수를 재정의 OnCreateClient 합니다.

  3. 재정CFrameWnd::OnCreateClient의된 CreateStatic 내에서 멤버 함수를 호출합니다.

정적 분할자 창에는 종종 다른 클래스의 고정된 수의 창이 포함됩니다.

정적 분할기 창을 만들 때 동시에 모든 창을 만들어야 합니다. CreateView 멤버 함수는 일반적으로 이 용도로 사용되지만 다른 비뷰 클래스도 만들 수 있습니다.

정적 분할자 창의 초기 최소 행 높이 및 열 너비는 0입니다. 창이 너무 작아서 전체적으로 표시할 수 없는 경우를 결정하는 이러한 최소값은 멤버 함수와 SetColumnInfo 함께 SetRowInfo 변경할 수 있습니다.

정적 분할자 창에 스크롤 막대를 추가하려면 스타일과 WS_VSCROLL 스타일을 추가 WS_HSCROLL 합니다dwStyle.

정적 분할자 창에 대한 자세한 내용은 여러 문서 형식, 보기 및 프레임 창, 기술 참고 29CSplitterWnd 클래스 개요 문서에서 "Splitter Windows"를 참조하세요.

CSplitterWnd::CreateView

정적 분할자 창의 창을 만듭니다.

virtual BOOL CreateView(
    int row,
    int col,
    CRuntimeClass* pViewClass,
    SIZE sizeInit,
    CCreateContext* pContext);

매개 변수

row
새 보기를 배치할 분할자 창 행을 지정합니다.

col
새 뷰를 배치할 분할자 창 열을 지정합니다.

pViewClass
새 뷰의 CRuntimeClass 값을 지정합니다.

sizeInit
새 뷰의 초기 크기를 지정합니다.

pContext
뷰를 만드는 데 사용되는 만들기 컨텍스트에 대한 포인터입니다(일반적으로 pContext 분할자 창이 만들어지는 부모 프레임의 재정의된 CFrameWnd::OnCreateClient 멤버 함수에 전달됨).

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

프레임워크에서 분할자를 표시하기 전에 정적 분할자 창의 모든 창을 만들어야 합니다.

또한 이 멤버 함수를 호출하여 동적 분할자 창의 사용자가 창, 행 또는 열을 분할할 때 새 창을 만듭니다.

예시

// this function creates the panes for a static splitter window
BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext *pContext)
{
   m_bSplitterCreated = m_wndSplitter.CreateStatic(this, 1, 2);
   // CMyView and CMyOtherView are user-defined views derived from CView
   m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyView), CSize(0, 0),
                            pContext);
   m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyOtherView), CSize(0, 0),
                            pContext);

   return (m_bSplitterCreated);
}

CSplitterWnd::CSplitterWnd

개체를 생성하기 위한 호출입니다 CSplitterWnd .

CSplitterWnd();

설명

두 단계로 개체를 CSplitterWnd 생성합니다. 먼저 개체를 만드는 CSplitterWnd 생성자를 호출한 다음, 분할자 창을 만들어 개체에 연결하는 멤버 함수를 CSplitterWnd 호출 Create 합니다.

CSplitterWnd::DeleteColumn

분할자 창에서 열을 삭제합니다.

virtual void DeleteColumn(int colDelete);

매개 변수

colDelete
삭제할 열을 지정합니다.

설명

이 멤버 함수는 동적 분할자 창(즉, 분할자 창에 스타일이 있는 경우)의 논리를 구현하기 위해 프레임워크에서 SPLS_DYNAMIC_SPLIT 호출됩니다. 고급 동적 분할자를 구현하기 위해 가상 함수 CreateView와 함께 사용자 지정할 수 있습니다.

CSplitterWnd::DeleteRow

분할자 창에서 행을 삭제합니다.

virtual void DeleteRow(int rowDelete);

매개 변수

rowDelete
삭제할 행을 지정합니다.

설명

이 멤버 함수는 동적 분할자 창(즉, 분할자 창에 스타일이 있는 경우)의 논리를 구현하기 위해 프레임워크에서 SPLS_DYNAMIC_SPLIT 호출됩니다. 고급 동적 분할자를 구현하기 위해 가상 함수 CreateView와 함께 사용자 지정할 수 있습니다.

CSplitterWnd::DeleteView

분할자 창에서 보기를 삭제합니다.

virtual void DeleteView(
    int row,
    int col);

매개 변수

row
보기를 삭제할 분할자 창 행을 지정합니다.

col
보기를 삭제할 분할자 창 열을 지정합니다.

설명

활성 보기가 삭제되면 다음 보기가 활성화됩니다. 기본 구현에서는 뷰가 자동으로 삭제 PostNcDestroy된다고 가정합니다.

이 멤버 함수는 동적 분할자 창(즉, 분할자 창에 스타일이 있는 경우)의 논리를 구현하기 위해 프레임워크에서 SPLS_DYNAMIC_SPLIT 호출됩니다. 고급 동적 분할자를 구현하기 위해 가상 함수 CreateView와 함께 사용자 지정할 수 있습니다.

CSplitterWnd::DoKeyboardSplit

키보드 분할 명령(일반적으로 "창 분할")을 수행합니다.

virtual BOOL DoKeyboardSplit();

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 멤버 함수는 클래스에서 구현에 CView 위임 CSplitterWnd 하는 데 사용되는 상위 수준 명령입니다.

CSplitterWnd::DoScroll

분할 창의 동기화된 스크롤을 수행합니다.

virtual BOOL DoScroll(
    CView* pViewFrom,
    UINT nScrollCode,
    BOOL bDoScroll = TRUE);

매개 변수

pViewFrom
스크롤 메시지가 시작되는 뷰에 대한 포인터입니다.

nScrollCode
사용자의 스크롤 요청을 나타내는 스크롤 막대 코드입니다. 이 매개 변수는 가로로 발생하는 스크롤 유형을 결정하는 하위 바이트와 세로로 발생하는 스크롤 유형을 결정하는 상위 바이트라는 두 부분으로 구성됩니다.

  • SB_BOTTOM 아래로 스크롤합니다.

  • SB_LINEDOWN 한 줄 아래로 스크롤합니다.

  • SB_LINEUP 한 줄을 위로 스크롤합니다.

  • SB_PAGEDOWN 한 페이지를 아래로 스크롤합니다.

  • SB_PAGEUP 한 페이지를 위로 스크롤합니다.

  • SB_TOP 위로 스크롤합니다.

bDoScroll
지정한 스크롤 동작이 발생하는지 여부를 결정합니다. TRUEbDoScroll, 자식 창이 있고 분할 창에 스크롤 범위가 있는 경우 지정된 스크롤 작업이 수행 bDoScroll FALSE 될 수 있습니다. 즉, 자식 창이 없거나 분할 보기에 스크롤 범위가 없는 경우 스크롤이 발생하지 않습니다.

Return Value

동기화된 스크롤이 발생하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 보기에서 스크롤 메시지를 받을 때 분할 창의 동기화된 스크롤을 수행하기 위해 프레임워크에서 호출됩니다. 동기화된 스크롤이 허용되기 전에 사용자가 작업을 요구하도록 재정의합니다.

CSplitterWnd::DoScrollBy

분할 창을 지정된 픽셀 수만큼 스크롤합니다.

virtual BOOL DoScrollBy(
    CView* pViewFrom,
    CSize sizeScroll,
    BOOL bDoScroll = TRUE);

매개 변수

pViewFrom
스크롤 메시지가 시작되는 뷰에 대한 포인터입니다.

sizeScroll
가로 및 세로로 스크롤할 픽셀 수입니다.

bDoScroll
지정한 스크롤 동작이 발생하는지 여부를 결정합니다. TRUEbDoScroll, 자식 창이 있고 분할 창에 스크롤 범위가 있는 경우 지정된 스크롤 작업이 수행 bDoScroll FALSE 될 수 있습니다. 즉, 자식 창이 없거나 분할 보기에 스크롤 범위가 없는 경우 스크롤이 발생하지 않습니다.

Return Value

동기화된 스크롤이 발생하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 스크롤 메시지에 대한 응답으로 프레임워크에서 호출하여 분할 창의 동기화된 스크롤을 픽셀 단위로 수행 sizeScroll합니다. 양수 값은 아래로 스크롤하고 오른쪽으로 스크롤함을 나타냅니다. 음수 값은 위쪽과 왼쪽으로 스크롤함을 나타냅니다.

스크롤을 허용하기 전에 사용자가 작업을 요구하도록 재정의합니다.

CSplitterWnd::GetActivePane

프레임의 포커스 또는 활성 보기에서 활성 창을 결정합니다.

virtual CWnd* GetActivePane(
    int* pRow = NULL,
    int* pCol = NULL);

매개 변수

pRow
현재 창의 행 번호를 검색하는 포인터 int 입니다.

pCol
현재 창의 열 번호를 검색하는 포인터 int 입니다.

Return Value

현재 창에 대한 포인터입니다. NULL 활성 창이 없으면 입니다.

설명

이 멤버 함수는 분할자 창에서 활성 창을 결정하기 위해 프레임워크에서 호출됩니다. 활성 창을 가져오기 전에 사용자가 작업을 요구하도록 재정의합니다.

CSplitterWnd::GetColumnCount

현재 창 열 수를 반환합니다.

int GetColumnCount() const;

Return Value

분할자의 현재 열 수를 반환합니다. 정적 분할기의 경우 최대 열 수이기도 합니다.

CSplitterWnd::GetColumnInfo

지정된 열에 대한 정보를 반환합니다.

void GetColumnInfo(
    int col,
    int& cxCur,
    int& cxMin) const;

매개 변수

col
열을 지정합니다.

cxCur
열의 int 현재 너비로 설정할 참조입니다.

cxMin
열의 int 현재 최소 너비로 설정할 참조입니다.

CSplitterWnd::GetPane

지정된 행과 열의 창을 반환합니다.

CWnd* GetPane(
    int row,
    int col) const;

매개 변수

row
행을 지정합니다.

col
열을 지정합니다.

Return Value

지정된 행과 열의 창을 반환합니다. 반환된 창은 일반적으로 CView파생 클래스입니다.

CSplitterWnd::GetRowCount

현재 창 행 수를 반환합니다.

int GetRowCount() const;

Return Value

분할자 창의 현재 행 수를 반환합니다. 정적 분할자 창의 경우 최대 행 수이기도 합니다.

CSplitterWnd::GetRowInfo

지정된 행에 대한 정보를 반환합니다.

void GetRowInfo(
    int row,
    int& cyCur,
    int& cyMin) const;

매개 변수

row
행을 지정합니다.

cyCur
int 행의 현재 높이(픽셀)로 설정할 참조입니다.

cyMin
int 행의 현재 최소 높이(픽셀)로 설정할 참조입니다.

설명

이 멤버 함수를 호출하여 지정된 행에 대한 정보를 가져옵니다. cyCur 매개 변수는 지정된 행의 현재 높이로 채워지고 cyMin 행의 최소 높이로 채워집니다.

CSplitterWnd::GetScrollStyle

분할자 창의 공유 스크롤 막대 스타일을 반환합니다.

DWORD GetScrollStyle() const;

Return Value

성공하는 경우 다음 창 스타일 플래그 중 하나 이상:

  • WS_HSCROLL 분할자에서 현재 공유 가로 스크롤 막대를 관리하는 경우

  • WS_VSCROLL 분할자에서 현재 공유 세로 스크롤 막대를 관리하는 경우

0이면 분할자 창에서 현재 공유 스크롤 막대를 관리하지 않습니다.

CSplitterWnd::IdFromRowCol

지정된 행과 열에 있는 창의 자식 창 ID를 가져옵니다.

int IdFromRowCol(
    int row,
    int col) const;

매개 변수

row
분할자 창 행을 지정합니다.

col
분할자 창 열을 지정합니다.

Return Value

창의 자식 창 ID입니다.

설명

이 멤버 함수는 비뷰를 창으로 만드는 데 사용되며 창이 존재하기 전에 호출될 수 있습니다.

예시

HBRUSH CMySplitterWnd::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CSplitterWnd::OnCtlColor(pDC, pWnd, nCtlColor);

   if (nCtlColor == CTLCOLOR_LISTBOX &&
       pWnd->GetDlgCtrlID() == IdFromRowCol(1, 0))
   {
      // Pane 1,0 is a list box. Set the color of the text to be blue.
      pDC->SetBkColor(m_BkColor);
      pDC->SetTextColor(RGB(0, 0, 255));
      return (HBRUSH)m_hbrListBoxBkgnd.GetSafeHandle();
   }
   // TODO: Return a different brush if the default is not desired
   return hbr;
}

CSplitterWnd::IsChildPane

현재 이 분할자 창의 자식 창인지 여부를 pWnd 확인합니다.

BOOL IsChildPane(
    CWnd* pWnd,
    int* pRow,
    int* pCol);

매개 변수

pWnd
테스트할 개체에 대한 CWnd 포인터입니다.

pRow
int 행 번호를 저장할 포인터입니다.

pCol
int 열 번호를 저장할 포인터입니다.

Return Value

0이 pWnd 아닌 경우 현재 이 분할자 창의 자식 창이며 pRow pCol 분할자 창의 창 위치로 채워집니다. 이 분할자 창의 자식 창이 아닌 경우 pWnd 0이 반환됩니다.

설명

6.0 이전의 Visual C++ 버전에서 이 함수는 로 정의되었습니다.

BOOL IsChildPane(CWnd* pWnd, int& row, int& col);

이 버전은 이제 사용되지 않으므로 사용하면 안 됩니다.

CSplitterWnd::IsTracking

이 멤버 함수를 호출하여 창의 분할 막대가 현재 이동 중인지 확인합니다.

BOOL IsTracking();

Return Value

분할자 작업이 진행 중인 경우 0이 아닌 경우 그렇지 않으면 0입니다.

CSplitterWnd::OnDrawSplitter

분할 창의 이미지를 렌더링합니다.

virtual void OnDrawSplitter(
    CDC* pDC,
    ESplitType nType,
    const CRect& rect);

매개 변수

pDC
그릴 디바이스 컨텍스트에 대한 포인터입니다. NULLCWnd::RedrawWindow 이 경우 pDC 프레임워크에서 호출되고 분할 창이 그려지지 않습니다.

nType
다음 중 하나일 수 있는 값 enum ESplitType입니다.

  • splitBox 분할자 끌기 상자입니다.

  • splitBar 두 분할 창 사이에 표시되는 막대입니다.

  • splitIntersection 분할 창의 교집합입니다. 이 요소는 Windows 95/98에서 실행할 때 호출되지 않습니다.

  • splitBorder 분할 창 테두리입니다.

rect
분할 창의 CRect 크기와 모양을 지정하는 개체에 대한 참조입니다.

설명

이 멤버 함수는 프레임워크에서 분할자 창의 정확한 특성을 그리고 지정하기 위해 호출됩니다. 분할자 창의 다양한 그래픽 구성 요소에 대한 이미지의 고급 사용자 지정을 재정 OnDrawSplitter 의합니다. 기본 이미지는 Windows용 Microsoft Works 또는 Microsoft Windows 95/98의 분할자와 유사합니다. 분할 막대의 교차점이 함께 혼합되어 있다는 점입니다.

동적 분할자 창에 대한 자세한 내용은 여러 문서 유형, 보기 및 프레임 창, Technical Note 29CSplitterWnd 클래스 개요 문서의 "Splitter Windows"를 참조하세요.

CSplitterWnd::OnInvertTracker

분할 창의 이미지를 프레임 창과 동일한 크기와 모양으로 렌더링합니다.

virtual void OnInvertTracker(const CRect& rect);

매개 변수

rect
추적 사각형을 CRect 지정하는 개체에 대한 참조입니다.

설명

이 멤버 함수는 분할자의 크기를 조정하는 동안 프레임워크에서 호출됩니다. 분할자 창 이미지의 고급 사용자 지정을 재정 OnInvertTracker 의합니다. 기본 이미지는 Windows용 Microsoft Works 또는 Microsoft Windows 95/98의 분할자와 유사합니다. 분할 막대의 교차점이 함께 혼합되어 있다는 점입니다.

동적 분할자 창에 대한 자세한 내용은 여러 문서 유형, 보기 및 프레임 창, Technical Note 29CSplitterWnd 클래스 개요 문서의 "Splitter Windows"를 참조하세요.

CSplitterWnd::RecalcLayout

행 또는 열 크기를 조정한 후 분할자 창을 다시 표시하도록 호출합니다.

virtual void RecalcLayout();

설명

및 멤버 함수를 사용하여 행 및 열 크기를 조정한 후 분할자 창을 올바르게 다시 표시하려면 이 멤버 함수를 SetRowInfo SetColumnInfo 호출합니다. 분할자 창이 표시되기 전에 만들기 프로세스의 일부로 행 및 열 크기를 변경하는 경우 이 멤버 함수를 호출할 필요가 없습니다.

프레임워크는 사용자가 분할자 창의 크기를 조정하거나 분할을 이동할 때마다 이 멤버 함수를 호출합니다.

예시

CSplitterWnd::SetColumnInfo에 대한 예를 참조하세요.

CSplitterWnd::SetActivePane

창을 프레임의 활성 창으로 설정합니다.

virtual void SetActivePane(
    int row,
    int col,
    CWnd* pWnd = NULL);

매개 변수

row
NULL경우 pWnd 활성화될 창의 행을 지정합니다.

col
NULL경우 pWnd 활성화될 창의 열을 지정합니다.

pWnd
CWnd 개체에 대한 포인터입니다. 이면 NULL창이 지정되고 row col 활성으로 설정됩니다. 그렇지 않은 NULL경우 활성으로 설정된 창을 지정합니다.

설명

이 멤버 함수는 프레임워크에서 사용자가 프레임 창 내의 창으로 포커스를 변경할 때 창을 활성으로 설정하기 위해 호출됩니다. 명시적으로 호출 SetActivePane 하여 포커스를 지정된 뷰로 변경할 수 있습니다.

행과 열을 제공하거나 입력하여 창을 지정합니다 pWnd.

CSplitterWnd::SetColumnInfo

지정된 열 정보를 설정하기 위한 호출입니다.

void SetColumnInfo(
    int col,
    int cxIdeal,
    int cxMin);

매개 변수

col
분할자 창 열을 지정합니다.

cxIdeal
분할자 창 열에 이상적인 너비를 픽셀 단위로 지정합니다.

cxMin
분할자 창 열의 최소 너비를 픽셀 단위로 지정합니다.

설명

이 멤버 함수를 호출하여 열에 대한 새 최소 너비 및 이상적인 너비를 설정합니다. 열 최소값은 열이 너무 작아서 완전히 표시되지 않을 시기를 결정합니다.

프레임워크에서 분할자 창을 표시하면 분할자 창의 클라이언트 영역의 왼쪽 위에서 오른쪽 아래 모서리까지 작업하는 이상적인 차원에 따라 열과 행의 창이 배치됩니다.

예시

void CChildFrame::OnSize(UINT nType, int cx, int cy)
{
   CMDIChildWnd::OnSize(nType, cx, cy);

   CRect rect;
   GetWindowRect(&rect);
   if (m_bSplitterCreated) // m_bSplitterCreated set in OnCreateClient
   {
      m_wndSplitter.SetColumnInfo(0, rect.Width() / 2, 10);
      m_wndSplitter.SetColumnInfo(1, rect.Width() / 2, 10);
      m_wndSplitter.RecalcLayout();
   }
}

CSplitterWnd::SetRowInfo

지정된 행 정보를 설정하기 위한 호출입니다.

void SetRowInfo(
    int row,
    int cyIdeal,
    int cyMin);

매개 변수

row
분할자 창 행을 지정합니다.

cyIdeal
분할자 창 행에 이상적인 높이를 픽셀 단위로 지정합니다.

cyMin
분할자 창 행의 최소 높이를 픽셀 단위로 지정합니다.

설명

이 멤버 함수를 호출하여 행에 대한 새 최소 높이 및 이상적인 높이를 설정합니다. 행 최소값은 행이 너무 작아서 완전히 표시되지 않을 시기를 결정합니다.

프레임워크에서 분할자 창을 표시하면 분할자 창의 클라이언트 영역의 왼쪽 위에서 오른쪽 아래 모서리까지 작업하는 이상적인 차원에 따라 열과 행의 창이 배치됩니다.

CSplitterWnd::SetScrollStyle

분할자 창의 공유 스크롤 막대 지원에 대한 새 스크롤 스타일을 지정합니다.

void SetScrollStyle(DWORD dwStyle);

매개 변수

dwStyle
분할자 창의 공유 스크롤 막대 지원에 대한 새 스크롤 스타일이며 다음 값 중 하나일 수 있습니다.

  • WS_HSCROLL 가로 공유 스크롤 막대를 만들거나 표시합니다.

  • WS_VSCROLL 세로 공유 스크롤 막대를 만들거나 표시합니다.

설명

스크롤 막대가 만들어지면 해당 스타일 없이 호출되더라도 SetScrollStyle 제거되지 않습니다. 대신 스크롤 막대가 숨겨집니다. 이렇게 하면 스크롤 막대가 숨겨져 있어도 상태를 유지할 수 있습니다. 호출 SetScrollStyle한 후에는 모든 변경 내용을 적용하도록 호출 RecalcLayout 해야 합니다.

CSplitterWnd::SplitColumn

프레임 창이 세로로 분할되는 위치를 나타냅니다.

virtual BOOL SplitColumn(int cxBefore);

매개 변수

cxBefore
분할이 발생하기 전의 위치(픽셀)입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 멤버 함수는 세로 분할기 창을 만들 때 호출됩니다. SplitColumn 는 분할이 발생하는 기본 위치를 나타냅니다.

SplitColumn 는 동적 분할자 창의 논리(즉, 분할자 창에 스타일이 있는 경우)의 논리를 구현하기 위해 프레임워크에서 SPLS_DYNAMIC_SPLIT 호출됩니다. 고급 동적 분할자를 구현하기 위해 가상 함수 CreateView와 함께 사용자 지정할 수 있습니다.

CSplitterWnd::SplitRow

프레임 창이 가로로 분할되는 위치를 나타냅니다.

virtual BOOL SplitRow(int cyBefore);

매개 변수

cyBefore
분할이 발생하기 전의 위치(픽셀)입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 멤버 함수는 가로 분할자 창을 만들 때 호출됩니다. SplitRow 는 분할이 발생하는 기본 위치를 나타냅니다.

SplitRow 는 동적 분할자 창의 논리(즉, 분할자 창에 스타일이 있는 경우)의 논리를 구현하기 위해 프레임워크에서 SPLS_DYNAMIC_SPLIT 호출됩니다. 고급 동적 분할자를 구현하기 위해 가상 함수 CreateView와 함께 사용자 지정할 수 있습니다.

CSplitterWnd::OnDraw

분할자 창을 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDraw(CDC* pDC);

매개 변수

pDC
디바이스 컨텍스트에 대한 포인터입니다.

설명

참고 항목

MFC 샘플 VIEWEX
CWnd 수업
계층 구조 차트
CView 수업