다음을 통해 공유


CStatusBarCtrl 클래스

Windows의 공용 상태 표시줄 컨트롤의 기능을 제공합니다.

구문

class CStatusBarCtrl : public CWnd

멤버

공용 생성자

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

공용 메서드

이름 설명
CStatusBarCtrl::Create 상태 표시줄 컨트롤을 만들어 개체에 CStatusBarCtrl 연결합니다.
CStatusBarCtrl::CreateEx 지정된 Windows 확장 스타일을 사용하여 상태 표시줄 컨트롤을 만들고 개체에 CStatusBarCtrl 연결합니다.
CStatusBarCtrl::D rawItem 소유자 그리기 상태 표시줄 컨트롤의 시각적 측면이 변경되면 호출됩니다.
CStatusBarCtrl::GetBorders 상태 표시줄 컨트롤의 가로 및 세로 테두리의 현재 너비를 검색합니다.
CStatusBarCtrl::GetIcon 현재 상태 표시줄 컨트롤에서 파트의 아이콘(창이라고도 함)을 검색합니다.
CStatusBarCtrl::GetParts 상태 표시줄 컨트롤의 파트 수를 검색합니다.
CStatusBarCtrl::GetRect 상태 표시줄 컨트롤에서 파트의 경계 사각형을 검색합니다.
CStatusBarCtrl::GetText 상태 표시줄 컨트롤의 지정된 부분에서 텍스트를 검색합니다.
CStatusBarCtrl::GetTextLength 상태 표시줄 컨트롤의 지정된 부분에서 텍스트의 길이(문자)를 검색합니다.
CStatusBarCtrl::GetTipText 상태 표시줄에서 창의 도구 설명 텍스트를 검색합니다.
CStatusBarCtrl::IsSimple 상태 창 컨트롤을 확인하여 단순 모드인지 확인합니다.
CStatusBarCtrl::SetBkColor 상태 표시줄의 배경색을 설정합니다.
CStatusBarCtrl::SetIcon 상태 표시줄에서 창의 아이콘을 설정합니다.
CStatusBarCtrl::SetMinHeight 상태 표시줄 컨트롤의 그리기 영역의 최소 높이를 설정합니다.
CStatusBarCtrl::SetParts 상태 표시줄 컨트롤의 파트 수와 각 파트의 오른쪽 가장자리 좌표를 설정합니다.
CStatusBarCtrl::SetSimple 상태 표시줄 컨트롤이 단순 텍스트를 표시할지 또는 이전 호출에서 설정한 모든 컨트롤 파트를 표시할지 여부를 지정합니다 SetParts.
CStatusBarCtrl::SetText 상태 표시줄 컨트롤의 특정 부분에서 텍스트를 설정합니다.
CStatusBarCtrl::SetTipText 상태 표시줄에서 창의 도구 설명 텍스트를 설정합니다.

설명

"상태 표시줄 컨트롤"은 일반적으로 응용 프로그램에서 다양한 종류의 상태 정보를 표시할 수 있는 부모 창의 아래쪽에 표시되는 가로 창입니다. 상태 표시줄 컨트롤을 파트로 나누어 둘 이상의 정보 유형을 표시할 수 있습니다.

이 컨트롤(따라서 CStatusBarCtrl 클래스)은 Windows 95/98 및 Windows NT 버전 3.51 이상에서 실행되는 프로그램에서만 사용할 수 있습니다.

사용에 CStatusBarCtrl대한 자세한 내용은 컨트롤 및 CStatusBarCtrl 사용을 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CStatusBarCtrl

요구 사항

헤더: afxcmn.h

CStatusBarCtrl::Create

상태 표시줄 컨트롤을 만들어 개체에 CStatusBarCtrl 연결합니다.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

매개 변수

dwStyle
상태 표시줄 컨트롤의 스타일을 지정합니다. Windows SDK의 공통 컨트롤 스타일에 나열된 상태 표시줄 컨트롤 스타일의 조합을 적용합니다. 이 매개 변수는 WS_CHILD 스타일을 포함해야 합니다. 또한 WS_VISIBLE 스타일도 포함해야 합니다.

rect
상태 표시줄 컨트롤의 크기와 위치를 지정합니다. CRect 개체 또는 RECT 구조체일 수 있습니다.

pParentWnd
상태 표시줄 컨트롤의 부모 창(일반적으로 .)을 CDialog지정합니다. NULL이 아니어야 합니다.

nID
상태 표시줄 컨트롤의 ID를 지정합니다.

Return Value

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

설명

두 단계로 구성 CStatusBarCtrl 합니다. 먼저 생성자를 호출한 다음 Create호출합니다. 그러면 상태 표시줄 컨트롤이 만들어지고 개체에 CStatusBarCtrl 연결됩니다.

상태 창의 기본 위치는 부모 창의 아래쪽에 있지만 부모 창의 클라이언트 영역 맨 위에 표시되도록 CCS_TOP 스타일을 지정할 수 있습니다. 상태 창의 오른쪽 끝에 크기 조정 그립을 포함하도록 SBARS_SIZEGRIP 스타일을 지정할 수 있습니다. 시스템이 상태 창에 그리더라도 결과 크기 조정 그립이 작동하지 않으므로 CCS_TOP 스타일과 SBARS_SIZEGRIP 스타일을 결합하는 것은 권장되지 않습니다.

확장 창 스타일을 사용하여 상태 표시줄을 만들려면 대신 CStatusBarCtrl::CreateExCreate를 호출합니다.

예시

VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
                       CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));

CStatusBarCtrl::CreateEx

컨트롤(자식 창)을 만들어 개체와 연결 CStatusBarCtrl 합니다.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

매개 변수

dwExStyle
만들 컨트롤의 확장 스타일을 지정합니다. 확장된 Windows 스타일 목록은 Windows SDK의 CreateWindowEx에 대한 dwExStyle 매개 변수를 참조하세요.

dwStyle
상태 표시줄 컨트롤의 스타일을 지정합니다. Windows SDK의 공통 컨트롤 스타일에 나열된 상태 표시줄 컨트롤 스타일의 조합을 적용합니다. 이 매개 변수는 WS_CHILD 스타일을 포함해야 합니다. 또한 WS_VISIBLE 스타일도 포함해야 합니다.

rect
pParentWnd의 클라이언트 좌표에서 만들 창의 크기와 위치를 설명하는 RECT 구조체에 대한 참조입니다.

pParentWnd
컨트롤의 부모 창에 대한 포인터입니다.

nID
컨트롤의 자식 창 ID입니다.

Return Value

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

설명

Windows 확장 스타일 서문 WS_EX_ 지정된 확장 Windows 스타일을 적용하려면 만들기 대신 사용합니다CreateEx.

CStatusBarCtrl::CStatusBarCtrl

CStatusBarCtrl 개체를 생성합니다.

CStatusBarCtrl();

CStatusBarCtrl::D rawItem

소유자 그리기 상태 표시줄 컨트롤의 시각적 측면이 변경되면 프레임워크에서 호출됩니다.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

매개 변수

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

설명

구조체의 DRAWITEMSTRUCT 멤버는 itemAction 수행할 그리기 동작을 정의합니다.

기본적으로 이 멤버 함수는 아무 작업도 수행하지 않습니다. 소유자 그리 CStatusBarCtrl 기 개체에 대한 그리기를 구현하려면 이 멤버 함수를 재정의합니다.

애플리케이션은 이 멤버 함수가 종료되기 전에 lpDrawItemStruct에 제공된 표시 컨텍스트에 대해 선택한 모든 GDI(그래픽 디바이스 인터페이스) 개체를 복원해야 합니다.

CStatusBarCtrl::GetBorders

가로 및 세로 테두리의 상태 표시줄 컨트롤의 현재 너비와 사각형 사이의 공간을 검색합니다.

BOOL GetBorders(int* pBorders) const;

BOOL GetBorders(
    int& nHorz,
    int& nVert,
    int& nSpacing) const;

매개 변수

pBorders
세 개의 요소가 있는 정수 배열의 주소입니다. 첫 번째 요소는 가로 테두리의 너비를 수신하고, 두 번째는 세로 테두리의 너비를 수신하며, 세 번째는 사각형 사이의 테두리 너비를 수신합니다.

nHorz
가로 테두리의 너비를 받는 정수에 대한 참조입니다.

nVert
세로 테두리의 너비를 받는 정수에 대한 참조입니다.

nSpacing
사각형 사이의 테두리 너비를 받는 정수에 대한 참조입니다.

Return Value

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

설명

이러한 테두리는 컨트롤의 바깥쪽 가장자리와 텍스트를 포함하는 컨트롤 내의 사각형 사이의 간격을 결정합니다.

예시

RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));

int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));

int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));

CStatusBarCtrl::GetIcon

현재 상태 표시줄 컨트롤에서 파트의 아이콘(창이라고도 함)을 검색합니다.

HICON GetIcon(int iPart) const;

매개 변수

iPart
[in] 검색할 아이콘이 들어 있는 파트의 인덱스(0부터 시작)입니다. 이 매개 변수가 -1이면 상태 표시줄은 단순 모드 상태 표시줄로 간주됩니다.

Return Value

메서드가 성공한 경우 아이콘에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

이 메서드는 Windows SDK에 설명된 SB_GETICON 메시지를 보냅니다.

상태 표시줄 컨트롤은 부분이라고도 하는 텍스트 출력 창의 행으로 구성됩니다. 상태 표시줄 에 대한 자세한 내용은 MFC 의 상태 표시줄 구현 및 CStatusBarCtrl 개체의 모드 설정을 참조하세요.

예시

첫 번째 코드 예제는 현재 상태 표시줄 컨트롤에 액세스하는 데 사용되는 변수 m_statusBar를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.

public:
CStatusBarCtrl m_statusBar;

다음 코드 예제에서는 현재 상태 표시줄 컨트롤의 두 창에 아이콘을 복사합니다. 코드 예제의 이전 섹션에서는 세 개의 창이 있는 상태 표시줄 컨트롤을 만든 다음 첫 번째 창에 아이콘을 추가했습니다. 다음은 첫 번째 창에서 아이콘을 검색한 다음 두 번째 및 세 번째 창에 추가하는 예제입니다.

// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);

CStatusBarCtrl::GetParts

상태 표시줄 컨트롤의 파트 수를 검색합니다.

int GetParts(
    int nParts,
    int* pParts) const;

매개 변수

nParts
좌표를 검색할 파트의 수입니다. 이 매개 변수가 컨트롤의 파트 수보다 크면 메시지는 기존 파트에 대해서만 좌표를 검색합니다.

pParts
nParts에서 지정 한 부분 수와 요소 수가 동일한 정수 배열의 주소입니다. 배열의 각 요소는 해당 파트 오른쪽 가장자리의 클라이언트 좌표를 받습니다. 요소가 - 1로 설정된 경우 해당 파트의 오른쪽 가장자리 위치가 상태 표시줄의 오른쪽 가장자리까지 확장됩니다.

Return Value

성공하면 컨트롤의 파트 수이거나, 그렇지 않으면 0입니다.

설명

또한 이 멤버 함수는 지정된 부분 수의 오른쪽 가장자리 좌표를 검색합니다.

예시

int pParts[2];

int nParts = m_wndSBC.GetParts(2, pParts);

CStatusBarCtrl::GetRect

상태 표시줄 컨트롤에서 파트의 경계 사각형을 검색합니다.

BOOL GetRect(
    int nPane,
    LPRECT lpRect) const;

매개 변수

nPane
경계 사각형을 검색할 파트의 0부터 시작하는 인덱스입니다.

lpRect
경계 사각형을 수신하는 RECT 구조체의 주소입니다.

Return Value

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

예시

CRect rectPane1;

VERIFY(m_wndSBC.GetRect(1, &rectPane1));

CStatusBarCtrl::GetText

상태 표시줄 컨트롤의 지정된 부분에서 텍스트를 검색합니다.

CString GetText(
    int nPane,
    int* pType = NULL) const;

int GetText(
    LPCTSTR lpszText,
    int nPane,
    int* pType = NULL) const;

매개 변수

lpszText
텍스트를 받는 버퍼의 주소입니다. 이 매개 변수는 null로 끝나는 문자열입니다.

nPane
텍스트를 검색할 파트의 인덱스(0부터 시작)입니다.

pType
형식 정보를 받는 정수에 대한 포인터입니다. 형식은 다음 값 중 하나일 수 있습니다.

  • 0 상태 표시줄의 평면보다 낮게 표시되도록 테두리가 있는 텍스트가 그려집니다.

  • SBT_NOBORDERS 텍스트가 테두리 없이 그려집니다.

  • SBT_POPOUT 상태 표시줄의 평면보다 높은 테두리로 텍스트를 그립니다.

  • SBT_OWNERDRAW 텍스트에 SBT_OWNERDRAW 그리기 형식 이 있는 경우 pType 은 이 메시지를 수신하고 길이 및 작업 유형 대신 텍스트와 연결된 32비트 값을 반환합니다.

Return Value

텍스트 또는 현재 텍스트가 포함된 CString 의 길이(문자)입니다.

예시

int nType;
TCHAR *pszPaneOneText;

pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

delete pszPaneOneText;

CStatusBarCtrl::GetTextLength

상태 표시줄 컨트롤의 지정된 부분에서 텍스트의 길이를 문자로 검색합니다.

int GetTextLength(
    int nPane,
    int* pType = NULL) const;

매개 변수

nPane
텍스트를 검색할 파트의 인덱스(0부터 시작)입니다.

pType
형식 정보를 받는 정수에 대한 포인터입니다. 형식은 다음 값 중 하나일 수 있습니다.

  • 0 상태 표시줄의 평면보다 낮게 표시되도록 테두리가 있는 텍스트가 그려집니다.

  • SBT_NOBORDERS 텍스트가 테두리 없이 그려집니다.

  • SBT_OWNERDRAW 부모 창에서 텍스트를 그립니다.

  • SBT_POPOUT 상태 표시줄의 평면보다 높은 테두리로 텍스트를 그립니다.

Return Value

텍스트의 길이(문자)입니다.

예시

int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

CStatusBarCtrl::GetTipText

상태 표시줄에서 창의 도구 설명 텍스트를 검색합니다.

CString GetTipText(int nPane) const;

매개 변수

nPane
도구 설명 텍스트를 받을 상태 표시줄 창의 인덱스(0부터 시작)입니다.

Return Value

도구 설명에 사용할 텍스트를 포함하는 CString 개체입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 SB_GETTIPTEXT 동작을 구현합니다.

예시

CString csPane0TipText = m_wndSBC.GetTipText(0);

CStatusBarCtrl::IsSimple

상태 창 컨트롤을 확인하여 단순 모드인지 확인합니다.

BOOL IsSimple() const;

Return Value

상태 창 컨트롤이 단순 모드인 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 SB_ISSIMPLE 동작을 구현합니다.

CStatusBarCtrl::SetBkColor

상태 표시줄의 배경색을 설정합니다.

COLORREF SetBkColor(COLORREF cr);

매개 변수

cr
새 배경색을 지정하는 COLORREF 값입니다. 상태 표시줄에서 기본 배경색을 사용하도록 CLR_DEFAULT 값을 지정합니다.

Return Value

이전의 기본 배경색을 나타내는 COLORREF 값입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 SB_SETBKCOLOR 동작을 구현합니다.

예시

m_wndSBC.SetBkColor(RGB(0, 0, 250));

HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));

CStatusBarCtrl::SetIcon

상태 표시줄에서 창의 아이콘을 설정합니다.

BOOL SetIcon(
    int nPane,
    HICON hIcon);

매개 변수

nPane
아이콘을 받을 창의 인덱스(0부터 시작하는 인덱스)입니다. 이 매개 변수가 -1이면 상태 표시줄은 단순 상태 표시줄로 간주됩니다.

hIcon
설정할 아이콘에 대한 핸들입니다. 이 값이 NULL이면 해당 아이콘이 파트에서 제거됩니다.

Return Value

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

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 SB_SETICON 동작을 구현합니다.

예시

CStatusBarCtrl::SetBkColor에 대한 예제를 참조하세요.

CStatusBarCtrl::SetMinHeight

상태 표시줄 컨트롤의 그리기 영역의 최소 높이를 설정합니다.

void SetMinHeight(int nMin);

매개 변수

nMin
컨트롤의 최소 높이(픽셀)입니다.

설명

최소 높이는 nMin의 합계이며 상태 표시줄 컨트롤의 세로 테두리 너비(픽셀)의 두 배입니다.

예시

m_wndSBC.SetMinHeight(40);

CStatusBarCtrl::SetParts

상태 표시줄 컨트롤의 파트 수와 각 파트의 오른쪽 가장자리 좌표를 설정합니다.

BOOL SetParts(
    int nParts,
    int* pWidths);

매개 변수

nParts
설정할 파트 수입니다. 부품 수는 255를 초과할 수 없습니다.

pWidths
nParts에서 지정 한 부분과 요소 수가 동일한 정수 배열의 주소입니다. 배열의 각 요소는 클라이언트 좌표에서 해당 부분의 오른쪽 가장자리 위치를 지정합니다. 요소가 - 1이면 해당 파트의 오른쪽 가장자리 위치가 컨트롤의 오른쪽 가장자리까지 확장됩니다.

Return Value

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

예시

const int c_nParts = 4;
CRect rect;

m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
                         -1};

VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));

CStatusBarCtrl::SetSimple

상태 표시줄 컨트롤이 단순 텍스트를 표시할지 또는 SetParts에 대한 이전 호출로 설정된 모든 컨트롤 파트를 표시할지 여부를 지정합니다.

BOOL SetSimple(BOOL bSimple = TRUE);

매개 변수

bSimple
[in] 표시 형식 플래그입니다. 이 매개 변수가 TRUE이면 컨트롤에 간단한 텍스트가 표시됩니다. FALSE이면 여러 부분이 표시됩니다.

Return Value

항상 0을 반환합니다.

설명

애플리케이션이 상태 표시줄 컨트롤을 단순이 아닌 컨트롤에서 단순으로 변경하거나 그 반대로 변경하는 경우 시스템은 즉시 컨트롤을 다시 그리게 됩니다.

CStatusBarCtrl::SetText

상태 표시줄 컨트롤의 특정 부분에서 텍스트를 설정합니다.

BOOL SetText(
    LPCTSTR lpszText,
    int nPane,
    int nType);

매개 변수

lpszText
설정할 텍스트를 지정하는 null 종료 문자열의 주소입니다. nType이 SBT_OWNERDRAW 경우 lpszText는 32비트의 데이터를 나타냅니다.

nPane
설정할 부분의 0부터 시작하는 인덱스입니다. 이 값이 255인 경우에는 상태 표시줄 컨트롤이 하나의 부분만 있는 단일 컨트롤인 것으로 간주됩니다.

nType
그리기 작업의 형식입니다. 가능한 값 목록은 SB_SETTEXT 메시지를 참조하세요.

Return Value

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

설명

이 메시지는 변경된 컨트롤의 부분을 무효화하여 컨트롤이 다음에 WM_PAINT 메시지를 받을 때 새 텍스트를 표시합니다.

예시

VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));

CStatusBarCtrl::SetTipText

상태 표시줄에서 창의 도구 설명 텍스트를 설정합니다.

void SetTipText(
    int nPane,
    LPCTSTR pszTipText);

매개 변수

nPane
도구 설명 텍스트를 받을 상태 표시줄 창의 인덱스(0부터 시작)입니다.

pszTipText
도구 설명 텍스트를 포함하는 문자열에 대한 포인터입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 SB_SETTIPTEXT 동작을 구현합니다.

예시

m_wndSBC.SetTipText(0, _T("This is Pane 0"));

참고 항목

CWnd 클래스
계층 구조 차트
CToolBarCtrl 클래스