CMFCStatusBar 클래스
클래스는 CMFCStatusBar
클래스와 유사한 상태 표시줄을 구현합니다 CStatusBar
. 그러나 CMFCStatusBar
클래스에는 CStatusBar
클래스에 의해 제공되지 않는 기능(예: 이미지, 애니메이션 및 진행률 표시줄을 표시하는 기능 및 마우스 두 번 클릭에 응답하는 기능)이 포함되어 있습니다.
더 자세한 내용은 Visual Studio 설치의 VC\atlmfc\src\mfc 폴더에 있는 소스 코드를 참조하세요.
구문
class CMFCStatusBar : public CPane
멤버
공용 메서드
보호된 메서드
속성 | 설명 |
---|---|
CMFCStatusBar::OnDrawPane | 상태 표시줄의 창을 다시 그릴 때 프레임워크에서 호출됩니다. |
설명
다음 다이어그램은 상태 표시줄 데모 샘플 애플리케이션의 상태 표시줄 그림을 보여 줍니다.
예제
다음 예제에서는 애플리케이션 클래스에서 다양 한 메서드를 호출 하는 데 사용 하는 지역 변수를 보여 줍니다 CMFCStatusBar
. 이러한 변수는 StatusBarDemoView.h에서 선언됩니다. Main 프레임은 MainFrm.h에서 선언되고, 문서는 StatusBarDemoDoc.h에 선언되고, 뷰는 StatusBarDemoView.h에 선언됩니다. 이 코드 조각은 상태 표시줄 데모 샘플의 일부입니다.
int m_nProgressCurr;
BOOL m_bInProgress;
CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;
CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;
다음 예제에서는 MainFrm.h에서 메서드를 도입한 GetStatusBar
다음 StatusBarDemoView.h의 메서드에서 GetStatusBar
이 메서드를 호출하여 개체에 대한 참조 CMFCStatusBar
를 가져오는 방법을 보여 줍니다. 이 코드 조각은 상태 표시줄 데모 샘플의 일부입니다.
// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}
다음 예제에서는 StatusBarDemoView.cpp 클래스에서 다양한 메서드를 호출하는 CMFCStatusBar
방법을 보여 줍니다. 상수는 MainFrm.h에서 선언됩니다. 이 예제에서는 아이콘을 설정하고, 상태 표시줄 창의 도구 설명 텍스트를 설정하고, 지정된 창에 진행률 표시줄을 표시하고, 지정된 창에 애니메이션을 할당하고, 상태 표시줄 창의 텍스트와 너비를 설정하고, 상태 표시줄 창의 진행률 표시줄의 현재 진행률 표시기를 설정하는 방법을 보여 줍니다. 이 코드 조각은 상태 표시줄 데모 샘플의 일부입니다.
// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);
상속 계층 구조
요구 사항
헤더: afxstatusbar.h
CMFCStatusBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
매개 변수
[in] bStretch
[in] bHorz
Return Value
설명
CMFCStatusBar::CommandToIndex
int CommandToIndex(UINT nIDFind) const;
매개 변수
[in] nIDFind
Return Value
설명
CMFCStatusBar::Create
BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
매개 변수
[in] pParentWnd
[in] dwStyle
[in] nID
Return Value
설명
CMFCStatusBar::CreateEx
BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
매개 변수
[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] nID
Return Value
설명
CMFCStatusBar::D oesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
Return Value
설명
CMFCStatusBar::EnablePaneDoubleClick
상태 표시줄에서 마우스 두 번 클릭 처리를 사용하거나 사용하지 않도록 설정합니다.
void EnablePaneDoubleClick(BOOL bEnable=TRUE);
매개 변수
bEnable
[in] TRUE이면 마우스 처리를 두 번 클릭합니다. 그렇지 않으면 마우스를 두 번 클릭할 때 처리를 사용하지 않도록 설정합니다.
설명
상태 표시줄이 두 번 클릭을 처리하도록 설정된 경우 Windows는 사용자가 상태 표시줄 창을 두 번 클릭할 때마다 리소스 ID와 함께 WM_COMMAND 알림을 상태 표시줄 소유자에게 보냅니다.
CMFCStatusBar::EnablePaneProgressBar
지정된 창에 진행률 표시줄을 표시합니다.
void EnablePaneProgressBar(
int nIndex,
long nTotal=100,
BOOL bDisplayText=FALSE,
COLORREF clrBar=-1,
COLORREF clrBarDest=-1,
COLORREF clrProgressText=-1);
매개 변수
nIndex
[in] 진행률 표시줄을 사용하도록 설정할 창의 인덱스를 지정합니다.
nTotal
[in] 진행률 표시줄의 최대값을 지정합니다.
bDisplayText
[in] 진행률 표시줄에 현재 진행률 값을 표시할지 여부를 지정합니다.
clrBar
[in] 진행률 표시줄의 배경색을 지정합니다.
clrBarDest
[in] 진행률 표시줄 배경의 보조 색을 지정합니다. clrBar와 다른 값을 사용하여 그라데이션에 혼합된 색으로 채웁니다.
clrProgressText
[in] 진행률 표시줄 텍스트의 색을 지정합니다.
설명
nTotal이 -1로 설정된 진행률 표시줄 호출 EnablePaneProgressBar
을 사용하지 않도록 설정하려면 기본적으로 nTotal 은 100으로 설정됩니다. 따라서 진행률을 백분율로 표시하기 위해 추가 계산이 필요하지 않습니다.
진행률 표시줄의 배경색이 그라데이션으로 혼합된 색을 표시할 수 있도록 clrBar 및 clrBarDest에 대해 서로 다른 값을 전달해야 합니다. .
현재 진행률을 설정하려면 CMFCStatusBar::SetPaneProgress 메서드를 호출합니다.
CMFCStatusBar::GetCount
상태 표시줄의 창 수를 검색합니다.
int GetCount() const;
Return Value
상태 표시줄의 창 수입니다.
CMFCStatusBar::GetDrawExtendedArea
BOOL GetDrawExtendedArea() const;
Return Value
설명
CMFCStatusBar::GetExtendedArea
virtual BOOL GetExtendedArea(CRect& rect) const;
매개 변수
[in] rect
Return Value
설명
CMFCStatusBar::GetItemID
UINT GetItemID(int nIndex) const;
매개 변수
[in] nIndex
Return Value
설명
CMFCStatusBar::GetItemRect
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
매개 변수
[in] nIndex
[in] lpRect
설명
CMFCStatusBar::GetPaneInfo
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
매개 변수
[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth
설명
CMFCStatusBar::GetPaneProgress
long GetPaneProgress(int nIndex) const;
매개 변수
[in] nIndex
Return Value
설명
CMFCStatusBar::GetPaneStyle
UINT GetPaneStyle(int nIndex) const;
매개 변수
[in] nIndex
Return Value
설명
CMFCStatusBar::GetPaneText
void GetPaneText(
int nIndex,
CString& s) const;
CString GetPaneText(int nIndex) const;
매개 변수
[in] nIndex
[in] s
Return Value
설명
CMFCStatusBar::GetPaneWidth
상태 표시줄 창의 너비를 검색합니다.
int GetPaneWidth(int nIndex) const;
매개 변수
nIndex
[in] 상태 표시줄 창의 인덱스를 지정합니다.
Return Value
nIndex에서 지정하는 상태 표시줄 창의 너비입니다. 그렇지 않으면 상태 표시줄 창이 0입니다.
CMFCStatusBar::GetTipText
상태 표시줄 창의 도구 설명 텍스트를 검색합니다.
CString GetTipText(int nIndex) const;
매개 변수
nIndex
[in] 도구 설명 텍스트를 검색할 창의 인덱스를 지정합니다.
Return Value
nIndex에서 지정하는 상태 표시줄 창의 도구 설명 텍스트입니다. 그렇지 않으면 지정된 nIndex 에 대한 상태 표시줄 창이 없거나 도구 설명 텍스트가 비어 있는 경우 빈 문자열입니다.
CMFCStatusBar::InvalidatePaneContent
상태 표시줄 창을 무효화하고 해당 콘텐츠를 다시 그어 줍니다.
void InvalidatePaneContent(int nIndex);
매개 변수
nIndex
[in] 콘텐츠를 무효화하고 다시 그릴 창의 인덱스를 지정합니다.
설명
상태 표시줄이 무효화되면 다시 그리기 위해 표시됩니다. 메서드가 메서드에 UpdateWindow
WM_PAINT 메시지를 보낼 때 Windows에서 다시 그리기 OnPaint
합니다.
CMFCStatusBar::OnDrawPane
상태 표시줄의 창을 다시 그어 줍니다.
virtual void OnDrawPane(
CDC* pDC,
CMFCStatusBarPaneInfo* pPane);
매개 변수
pDC
[in] 그리기용 디바이스 컨텍스트에 대한 포인터입니다.
pPane
[in] 다시 그릴 창에 대한 정보가 들어 있는 구조체에 대한 포인터 CMFCStatusBarPaneInfo
입니다.
설명
기본적으로 OnDrawPane
창의 스타일 및 콘텐츠에 따라 디바이스 컨텍스트 pDC 를 사용하여 창을 다시 그어 줍니다.
-derived 클래스에서 이 메서드를 CMFCStatusBar
재정의하여 창의 모양을 사용자 지정합니다.
CMFCStatusBar::P reCreateWindow
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
매개 변수
[in] cs
Return Value
설명
CMFCStatusBar::SetDrawExtendedArea
void SetDrawExtendedArea(BOOL bSet = TRUE);
매개 변수
[in] bSet
설명
CMFCStatusBar::SetIndicators
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
매개 변수
[in] lpIDArray
[in] nIDCount
Return Value
설명
CMFCStatusBar::SetPaneAnimation
지정된 창에 애니메이션을 할당합니다.
void SetPaneAnimation(
int nIndex,
HIMAGELIST hImageList,
UINT nFrameRate=500,
BOOL bUpdate=TRUE);
매개 변수
nIndex
[in] 애니메이션에 할당할 창의 인덱스를 지정합니다.
hImageList
[in] 애니메이션 프레임을 포함하는 이미지 목록의 핸들을 지정합니다.
nFrameRate
[in] 애니메이션의 프레임 속도를 밀리초 단위로 지정합니다.
bUpdate
[in] TRUE이면 창 콘텐츠를 즉시 업데이트합니다. 그렇지 않으면 창 콘텐츠가 무효화되면 업데이트됩니다.
설명
현재 애니메이션을 사용하지 않도록 설정하려면 NULL로 hImageList
설정된 상태로 호출 SetPaneAnimation
합니다.
CMFCStatusBar::SetPaneBackgroundColor
상태 표시줄 창의 배경색을 설정합니다.
void SetPaneBackgroundColor(
int nIndex,
COLORREF clrBackground=(COLORREF)-1,
BOOL bUpdate=TRUE);
매개 변수
nIndex
[in] 새 배경색을 설정할 창의 인덱스를 지정합니다.
clrBackground
[in] 새 배경색을 지정합니다.
bUpdate
[in] TRUE이면 창 콘텐츠를 즉시 업데이트합니다. 그렇지 않으면 다른 메서드에 의해 창이 무효화될 때까지 창 콘텐츠를 업데이트하지 마세요.
CMFCStatusBar::SetPaneIcon
상태 표시줄 창의 아이콘을 설정합니다.
void SetPaneIcon(
int nIndex,
HICON hIcon,
BOOL bUpdate=TRUE);
void SetPaneIcon(
int nIndex,
HBITMAP hBmp,
COLORREF clrTransparent=RGB(255, 0, 255),
BOOL bUpdate=TRUE);
매개 변수
nIndex
[in] 이미지를 설정할 창의 인덱스를 지정합니다.
hIcon
[in] 창 이미지로 설정할 아이콘에 대한 핸들을 지정합니다.
bUpdate
[in] 창 콘텐츠를 즉시 업데이트할지 여부를 지정합니다.
hBmp
[in] 창 이미지로 설정할 비트맵에 대한 핸들을 지정합니다.
clrTransparent
[in] hBmp가 나타내는 비트맵의 투명한 색을 지정합니다.
설명
HICON 또는 HBITMAP을 투명 색과 함께 전달하여 창의 이미지를 설정할 수 있습니다. 이미지를 더 이상 표시하지 않으려면 NULL 값을 이미지 핸들로 전달합니다.
CMFCStatusBar::SetPaneAnimation이 설정한 실행 중인 애니메이션이 있으면 애니메이션이 중지됩니다.
CMFCStatusBar::SetPaneInfo
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
매개 변수
[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth
설명
CMFCStatusBar::SetPaneProgress
지정된 창에 대한 진행률 표시줄의 현재 진행률 표시기를 설정합니다.
void SetPaneProgress(
int nIndex,
long nCurr,
BOOL bUpdate=TRUE);
매개 변수
nIndex
[in] 진행률 표시기를 업데이트할 창의 인덱스를 지정합니다.
nCurr
[in] 진행률 표시기의 현재 값을 지정합니다.
bUpdate
[in] 창을 즉시 업데이트할지 여부를 지정합니다.
설명
지정된 창에서 진행률 표시줄의 진행률 표시기를 업데이트하려면 이 메서드를 호출합니다.
지정된 창에 이 함수를 사용하려면 CMFCStatusBar::EnablePaneProgressBar를 먼저 호출해야 합니다.
CMFCStatusBar::SetPaneStyle
void SetPaneStyle(
int nIndex,
UINT nStyle);
매개 변수
[in] nIndex
[in] nStyle
설명
CMFCStatusBar::SetPaneText
virtual BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
매개 변수
[in] nIndex
[in] lpszNewText
[in] bUpdate
Return Value
설명
CMFCStatusBar::SetPaneTextColor
지정된 창의 텍스트 색을 설정합니다.
void SetPaneTextColor(
int nIndex,
COLORREF clrText=(COLORREF)-1,
BOOL bUpdate=TRUE);
매개 변수
nIndex
[in] 새 텍스트 색을 할당할 창의 인덱스를 지정합니다.
clrText
[in] 텍스트 색을 지정합니다.
bUpdate
[in] TRUE이면 창 콘텐츠를 즉시 업데이트합니다. 그렇지 않으면 다른 메서드에 의해 창이 무효화될 때까지 창 콘텐츠를 업데이트하지 마세요.
CMFCStatusBar::SetPaneWidth
상태 표시줄 창의 너비를 설정합니다.
void SetPaneWidth(
int nIndex,
int cx);
매개 변수
nIndex
[in] 새 너비를 설정할 상태 표시줄 창의 인덱스입니다.
cx
[in] 상태 표시줄 창의 새 너비(픽셀)입니다.
CMFCStatusBar::SetTipText
상태 표시줄 창의 도구 설명 텍스트를 설정합니다.
void SetTipText(
int nIndex,
LPCTSTR pszTipText);
매개 변수
nIndex
[in] 도구 설명 텍스트를 할당할 창의 인덱스입니다.
pszTipText
[in] 새 도구 설명 텍스트입니다.