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 또는 인덱스 중 하나를 사용하여 지표에 액세스할 수 있습니다.
기본적으로 첫 번째 표시기는 "탄력적"입니다. 다른 표시기 창에서 사용하지 않는 상태 표시줄 길이를 차지하므로 다른 창이 오른쪽에 맞춰집니다.
상태 표시줄을 만들려면 다음 단계를 수행합니다.
CStatusBar
개체를 생성합니다.Create(또는 CreateEx) 함수를 호출하여 상태 표시줄 창을 만들고 개체에
CStatusBar
연결합니다.SetIndicators를 호출 하여 문자열 ID를 각 표시기와 연결합니다 .
상태 표시줄 창에서 텍스트를 업데이트하는 세 가지 방법이 있습니다.
CWnd::SetWindowText를 호출하여 창 0에서만 텍스트를 업데이트합니다.
상태 표시줄의 ON_UPDATE_COMMAND_UI 처리기에서 CCmdUI::SetText를 호출합니다.
SetPaneText를 호출하여 모든 창의 텍스트를 업데이트합니다.
SetPaneStyle을 호출하여 상태 표시줄 창의 스타일을 업데이트합니다.
사용에 CStatusBar
대한 자세한 내용은 MFC 및 기술 참고 31: 컨트롤 막대의 상태 표시줄 구현 문서를 참조하세요.
상속 계층 구조
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
포함된 상태 표시줄 컨트롤을 만드는 동안 특정 스타일이 있어야 하는 경우 만들기 대신 사용합니다. 예를 들어 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, nStyle 및 cxWidth를 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 상태 표시줄 일반 컨트롤의 기능을 활용하고 상태 표시줄 사용자 지정을 위해 제공하는 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
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기