다음을 통해 공유


CStatusBar 클래스

텍스트 출력 창의 행 또는 "지표"가 있는 컨트롤 막대입니다.

구문

class CStatusBar : public CControlBar

멤버

공용 생성자

속성 설명
CStatusBar::CStatusBar CStatusBar 개체를 생성합니다.

공용 메서드

이름 설명
CStatusBar::CommandToIndex 지정된 표시기 ID의 인덱스입니다.
CStatusBar::Create 상태 막대를 만들고, 개체에 CStatusBar 연결하고, 초기 글꼴과 막대 높이를 설정합니다.
CStatusBar::CreateEx 포함된 CStatusBarCtrl 개체에 CStatusBar 대한 추가 스타일을 사용하여 개체를 만듭니다.
CStatusBar::D rawItem 소유자 그리기 상태 막대 컨트롤의 시각적 측면이 변경되면 호출됩니다.
CStatusBar::GetItemID 지정된 인덱스 표시기 ID를 가져옵니다.
CStatusBar::GetItemRect 지정된 인덱스 표시 사각형을 가져옵니다.
CStatusBar::GetPaneInfo 지정된 인덱스 표시기 ID, 스타일 및 너비를 가져옵니다.
CStatusBar::GetPaneStyle 지정된 인덱스 표시기 스타일을 가져옵니다.
CStatusBar::GetPaneText 지정된 인덱스 표시기 텍스트를 가져옵니다.
CStatusBar::GetStatusBarCtrl 기본 공용 컨트롤에 직접 액세스할 수 있습니다.
CStatusBar::SetIndicators 표시기 ID를 설정합니다.
CStatusBar::SetPaneInfo 지정된 인덱스 표시기 ID, 스타일 및 너비를 설정합니다.
CStatusBar::SetPaneStyle 지정된 인덱스 표시기 스타일을 설정합니다.
CStatusBar::SetPaneText 지정된 인덱스 표시기 텍스트를 설정합니다.

설명

출력 창은 일반적으로 메시지 줄 및 상태 표시로 사용됩니다. 예를 들어 선택한 메뉴 명령을 간략하게 설명하는 메뉴 도움말 메시지 줄과 SCROLL LOCK, NUM LOCK 및 기타 키의 상태 표시하는 표시기가 있습니다.

CStatusBar::GetStatusBarCtrl, MFC 4.0에 새로운 멤버 함수, 상태 막대 사용자 지정 및 추가 기능에 대 한 Windows 공용 컨트롤의 지원을 활용할 수 있습니다. CStatusBar멤버 함수는 Windows 공용 컨트롤의 대부분의 기능을 제공합니다. 그러나 호출GetStatusBarCtrl할 때 상태 막대에 Windows 95/98 상태 막대의 특징을 더 많이 제공할 수 있습니다. 호출 GetStatusBarCtrl하면 개체에 대한 참조가 CStatusBarCtrl 반환됩니다. Windows 공용 컨트롤을 사용하여 도구 모음을 디자인하는 방법에 대한 자세한 내용은 CStatusBarCtrl을 참조하세요. 일반적인 컨트롤에 대한 자세한 내용은 Windows SDK의 공용 컨트롤을 참조하세요.

프레임워크는 가장 왼쪽 표시기가 위치 0인 배열에 표시기 정보를 저장합니다. 상태 막대를 만들 때 프레임워크가 해당 표시기와 연결하는 문자열 ID 배열을 사용합니다. 그런 다음 문자열 ID 또는 인덱스 중 하나를 사용하여 지표에 액세스할 수 있습니다.

기본적으로 첫 번째 표시기는 "탄력적"입니다. 다른 표시기 창에서 사용하지 않는 상태 막대 길이를 차지하므로 다른 창이 오른쪽에 맞춰집니다.

상태 막대를 만들려면 다음 단계를 수행합니다.

  1. CStatusBar 개체를 생성합니다.

  2. Create(또는 CreateEx) 함수를 호출하여 상태 막대 창을 만들고 개체에 CStatusBar 연결합니다.

  3. SetIndicators를 호출 하여 문자열 ID를 각 표시기와 연결합니다 .

상태 막대 창에서 텍스트를 업데이트하는 세 가지 방법이 있습니다.

  1. CWnd::SetWindowText를 호출하여 창 0에서만 텍스트를 업데이트합니다.

  2. 상태 막대의 ON_UPDATE_COMMAND_UI 처리기에서 CCmdUI::SetText를 호출합니다.

  3. SetPaneText를 호출하여 모든 창의 텍스트를 업데이트합니다.

SetPaneStyle을 호출하여 상태 막대 창의 스타일을 업데이트합니다.

사용에 CStatusBar대한 자세한 내용은 MFC기술 참고 31: 컨트롤 막대의 상태 표시줄 구현 문서를 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CControlBar

CStatusBar

요구 사항

헤더: afxext.h

CStatusBar::CommandToIndex

지정된 ID의 표시기 인덱스입니다.

int CommandToIndex(UINT nIDFind) const;

매개 변수

nIDFind
인덱스가 검색될 표시기의 문자열 ID입니다.

Return Value

성공하면 표시기의 인덱스입니다. 성공하지 못한 경우 -1입니다.

설명

첫 번째 표시기의 인덱스는 0입니다.

CStatusBar::Create

상태 막대(자식 창)를 만들어 개체와 CStatusBar 연결합니다.

virtual BOOL Create(
    CWnd* pParentWnd,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

매개 변수

pParentWnd
Windows 창이 상태 막대의 부모인 CWnd 개체에 대한 포인터입니다.

dwStyle
상태 막대 스타일입니다. 표준 Windows 스타일 외에도 이러한 스타일이 지원됩니다.

  • CBRS_TOP 컨트롤 막대는 프레임 창 맨 위에 있습니다.

  • CBRS_BOTTOM 컨트롤 막대는 프레임 창의 맨 아래에 있습니다.

  • CBRS_NOALIGN 컨트롤 표시줄은 부모 크기가 조정될 때 위치가 조정되지 않습니다.

nID
도구 모음의 자식 창 ID입니다.

Return Value

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

설명

또한 초기 글꼴을 설정하고 상태 막대의 높이를 기본값으로 설정합니다.

CStatusBar::CreateEx

이 함수를 호출하여 상태 막대(자식 창)를 만들고 개체와 CStatusBar 연결합니다.

virtual BOOL CreateEx(
    CWnd* pParentWnd,
    DWORD dwCtrlStyle = 0,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

매개 변수

pParentWnd
Windows 창이 상태 막대의 부모인 CWnd 개체에 대한 포인터입니다.

dwCtrlStyle
포함된 CStatusBarCtrl 개체를 만들기 위한 추가 스타일입니다. 기본값은 크기 조정 그립 또는 도구 설명 지원 없이 상태 막대를 지정합니다. 지원되는 상태 표시줄 스타일은 다음과 같습니다.

  • SBARS_SIZEGRIP 상태 막대 컨트롤은 상태 막대의 오른쪽 끝에 크기 조정 그립을 포함합니다. 크기 조정 그립은 크기 조정 테두리와 유사합니다. 사용자가 클릭하고 끌어 부모 창의 크기를 조정할 수 있는 직사각형 영역입니다.

  • SBT_TOOLTIPS 상태 막대는 도구 설명을 지원합니다.

이러한 스타일에 대한 자세한 내용은 CStatusBarCtrl에 대한 설정 참조하세요.

dwStyle
상태 막대 스타일입니다. 기본값은 프레임 창 아래쪽에 표시되는 상태 막대를 만들게 지정합니다. 창 스타일 및 CDialogBar::Create에 나열된 상태 막대 컨트롤 스타일의 조합을 적용합니다. 그러나 이 매개 변수는 항상 WS_CHILD 및 WS_VISIBLE 스타일을 포함해야 합니다.

nID
상태 막대의 자식 창 ID입니다.

Return Value

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

설명

또한 이 함수는 초기 글꼴을 설정하고 상태 막대의 높이를 기본값으로 설정합니다.

CreateEx포함된 상태 막대 컨트롤을 만드는 동안 특정 스타일이 있어야 하는 경우 Create 대신 사용합니다. 예를 들어 dwCtrlStyle을 SBT_TOOLTIPS 설정하여 상태 막대 개체에 도구 설명을 표시합니다.

CStatusBar::CStatusBar

개체를 CStatusBar 생성하고, 필요한 경우 기본 상태 막대 글꼴을 만들고, 글꼴 특성을 기본값으로 설정합니다.

CStatusBar();

CStatusBar::D rawItem

이 멤버 함수는 소유자가 그린 상태 막대의 시각적 측면이 변경되면 프레임워크에서 호출됩니다.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

매개 변수

lpDrawItemStruct
필요한 그리기 형식에 대한 정보를 포함하는 DRAWITEMSTRUCT 구조체에 대한 포인터입니다.

설명

구조체의 DRAWITEMSTRUCT 멤버는 itemAction 수행할 그리기 동작을 정의합니다. 소유자 그리 CStatusBar 기 개체에 대한 그리기를 구현하려면 이 멤버 함수를 재정의합니다. 애플리케이션은 이 멤버 함수가 종료되기 전에 lpDrawItemStruct에 제공된 표시 컨텍스트에 대해 선택한 모든 GDI(그래픽 디바이스 인터페이스) 개체를 복원해야 합니다.

CStatusBar::GetItemID

nIndex에서 지정한 표시기의 ID를 반환합니다.

UINT GetItemID(int nIndex) const;

매개 변수

nIndex
ID를 검색할 표시기의 인덱스입니다.

Return Value

nIndex에서 지정한 표시기의 ID입니다.

CStatusBar::GetItemRect

nIndex에서 지정한 표시기의 좌표를 lpRect가 가리키는 구조체에 복사합니다.

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

매개 변수

nIndex
사각형 좌표를 검색할 표시기의 인덱스입니다.

lpRect
nIndex에서 지정한 표시기의 좌표를 받을 RECT 구조체 또는 CRect 개체를 가리킵니다.

설명

좌표는 상태 막대의 왼쪽 위 모서리를 기준으로 픽셀 단위입니다.

CStatusBar::GetPaneInfo

nID, nStylecxWidth를 nIndex에서 지정한 위치에 있는 표시기 창의 ID, 스타일 및 너비로 설정합니다.

void GetPaneInfo(
    int nIndex,
    UINT& nID,
    UINT& nStyle,
    int& cxWidth) const;

매개 변수

nIndex
정보를 검색할 창의 인덱스입니다.

nID
창의 ID로 설정된 UINT에 대한 참조입니다.

nStyle
창의 스타일로 설정된 UINT에 대한 참조입니다.

cxWidth
창의 너비로 설정된 정수에 대한 참조입니다.

CStatusBar::GetPaneStyle

이 멤버 함수를 호출하여 상태 막대 창의 스타일을 검색합니다.

UINT GetPaneStyle(int nIndex) const;

매개 변수

nIndex
스타일을 검색할 창의 인덱스입니다.

Return Value

nIndex에서 지정한 상태 막대 창의 스타일입니다.

설명

창의 스타일에 따라 창이 표시되는 방식이 결정됩니다.

상태 막대에 사용할 수 있는 스타일 목록은 만들기를 참조하세요.

CStatusBar::GetPaneText

이 멤버 함수를 호출하여 상태 막대 창에 나타나는 텍스트를 검색합니다.

CString GetPaneText(int nIndex) const;  void GetPaneText(int nIndex, CString& rString) const;

매개 변수

nIndex
텍스트를 검색할 창의 인덱스입니다.

rString
검색할 텍스트가 포함된 CString 개체에 대한 참조입니다.

Return Value

CString 창의 텍스트가 들어 있는 개체입니다.

설명

이 멤버 함수의 두 번째 형식은 문자열 텍스트로 CString 개체를 채웁니다.

CStatusBar::GetStatusBarCtrl

이 멤버 함수를 사용하면 기본 공용 컨트롤에 직접 액세스할 수 있습니다.

CStatusBarCtrl& GetStatusBarCtrl() const;

Return Value

CStatusBarCtrl 개체에 대한 참조를 포함합니다.

설명

Windows 상태-bar 공통 컨트롤의 기능을 활용하고 CStatusBarCtrl이 상태 바 사용자 지정에 제공하는 지원을 활용하는 데 사용합니다GetStatusBarCtrl. 예를 들어 공통 컨트롤을 사용하여 상태 막대에 크기 조정 그립이 포함된 스타일을 지정하거나 상태 막대가 부모 창의 클라이언트 영역 맨 위에 표시되도록 스타일을 지정할 수 있습니다.

일반적인 컨트롤에 대한 자세한 내용은 Windows SDK의 공용 컨트롤을 참조하세요.

CStatusBar::SetIndicators

각 표시기의 ID를 배열 lpIDArray의 해당 요소에 의해 지정된 값으로 설정하고, 각 ID로 지정된 문자열 리소스를 로드하고, 표시기의 텍스트를 문자열로 설정합니다.

BOOL SetIndicators(
    const UINT* lpIDArray,
    int nIDCount);

매개 변수

lpIDArray
ID 배열에 대한 포인터입니다.

nIDCount
lpIDArray가 가리키는 배열의 요소 수입니다.

Return Value

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

CStatusBar::SetPaneInfo

지정한 표시기 창을 새 ID, 스타일 및 너비로 설정합니다.

void SetPaneInfo(
    int nIndex,
    UINT nID,
    UINT nStyle,
    int cxWidth);

매개 변수

nIndex
스타일을 설정할 표시기 창의 인덱스입니다.

nID
표시기 창의 새 ID입니다.

nStyle
표시기 창의 새 스타일입니다.

cxWidth
표시기 창의 새 너비입니다.

설명

지원되는 표시기 스타일은 다음과 같습니다.

  • SBPS_NOBORDERS 창 주위에 3차원 테두리가 없습니다.

  • SBPS_POPOUT 텍스트가 "팝아웃"되도록 테두리를 반대로 설정합니다.

  • SBPS_DISABLED 텍스트를 그리지 마세요.

  • 사용하지 않는 공간을 채우려면 스트레치 창을 SBPS_STRETCH. 상태 막대당 하나의 창만 이 스타일을 사용할 수 있습니다.

  • SBPS_NORMAL 스트레치, 테두리 또는 팝업이 없습니다.

CStatusBar::SetPaneStyle

이 멤버 함수를 호출하여 상태 막대 창의 스타일을 설정합니다.

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

매개 변수

nIndex
스타일을 설정할 창의 인덱스입니다.

nStyle
스타일을 설정할 창의 스타일입니다.

설명

창의 스타일에 따라 창이 표시되는 방식이 결정됩니다.

상태 막대에 사용할 수 있는 스타일 목록은 SetPaneInfo를 참조하세요.

CStatusBar::SetPaneText

이 멤버 함수를 호출하여 창 텍스트를 lpszNewText가 가리키는 문자열로 설정합니다.

BOOL SetPaneText(
    int nIndex,
    LPCTSTR lpszNewText,
    BOOL bUpdate = TRUE);

매개 변수

nIndex
텍스트를 설정할 창의 인덱스입니다.

lpszNewText
새 창 텍스트에 대한 포인터입니다.

bUpdate
TRUE이면 텍스트가 설정된 후 창이 무효화됩니다.

Return Value

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

설명

호출SetPaneText한 후 UI 업데이트 처리기를 추가하여 상태 표시줄에 새 텍스트를 표시해야 합니다.

예시

//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);

 

//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)

 

void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
   pCmdUI->Enable();
}

참고 항목

MFC 샘플 CTRLBAR
MFC Sample DLGCBR32
CControlBar Class
계층 구조 차트
CStatusBarCtrl 클래스
CControlBar Class