Share via


CMFCCaptionBar 클래스

CMFCCaptionBar 개체는 단추, 텍스트 레이블 및 비트맵의 세 가지 요소를 표시할 수 있는 컨트롤 막대입니다. 각 형식의 요소를 한 번에 하나만 표시할 수 있습니다. 각 요소를 컨트롤의 왼쪽 또는 오른쪽 가장자리나 가운데에 맞출 수 있습니다. 평면 또는 3D 스타일을 캡션 표시줄의 위쪽 및 아래쪽 테두리에 적용할 수도 있습니다.

구문

class CMFCCaptionBar : public CPane

멤버

공용 메서드

이름 설명
CMFCCaptionBar::Create 캡션 막대 컨트롤을 만들어 개체에 CMFCCaptionBar 연결합니다.
CMFCCaptionBar::D oesAllowDynInsertBefore 캡션 막대와 부모 프레임 사이에 다른 창을 동적으로 삽입할 수 있는지 여부를 나타냅니다. (재정의 CBasePane::D oesAllowDynInsertBefore.)
CMFCCaptionBar::EnableButton 캡션 표시줄에서 단추를 사용하거나 사용하지 않도록 설정합니다.
CMFCCaptionBar::GetAlignment 지정된 요소의 맞춤을 반환합니다.
CMFCCaptionBar::GetBorderSize 캡션 막대의 테두리 크기를 반환합니다.
CMFCCaptionBar::GetButtonRect 캡션 표시줄에 있는 단추의 경계 사각형을 검색합니다.
CMFCCaptionBar::GetMargin 캡션 막대 요소의 가장자리와 캡션 막대 컨트롤의 가장자리 사이의 거리를 반환합니다.
CMFCCaptionBar::IsMessageBarMode 캡션 표시줄이 메시지 표시줄 모드에 있는지 여부를 지정합니다.
CMFCCaptionBar::RemoveBitmap 캡션 막대에서 비트맵 이미지를 제거합니다.
CMFCCaptionBar::RemoveButton 캡션 표시줄에서 단추를 제거합니다.
CMFCCaptionBar::RemoveIcon 캡션 표시줄에서 아이콘을 제거합니다.
CMFCCaptionBar::RemoveText 캡션 막대에서 텍스트 레이블을 제거합니다.
CMFCCaptionBar::SetBitmap 캡션 막대의 비트맵 이미지를 설정합니다.
CMFCCaptionBar::SetBorderSize 캡션 막대의 테두리 크기를 설정합니다.
CMFCCaptionBar::SetButton 캡션 막대의 단추를 설정합니다.
CMFCCaptionBar::SetButtonPressed 단추를 계속 누를지 여부를 지정합니다.
CMFCCaptionBar::SetButtonToolTip 단추의 도구 설명을 설정합니다.
CMFCCaptionBar::SetFlatBorder 캡션 막대의 테두리 스타일을 설정합니다.
CMFCCaptionBar::SetIcon 캡션 막대의 아이콘을 설정합니다.
CMFCCaptionBar::SetImageToolTip 캡션 막대에 대한 이미지의 도구 설명을 설정합니다.
CMFCCaptionBar::SetMargin 캡션 막대 요소의 가장자리와 캡션 막대 컨트롤의 가장자리 사이의 거리를 설정합니다.
CMFCCaptionBar::SetText 캡션 막대의 텍스트 레이블을 설정합니다.

보호된 메서드

속성 설명
CMFCCaptionBar::OnDrawBackground 캡션 막대의 배경을 채우기 위해 프레임워크에서 호출됩니다.
CMFCCaptionBar::OnDrawBorder 캡션 막대의 테두리를 그리기 위해 프레임워크에서 호출됩니다.
CMFCCaptionBar::OnDrawButton 캡션 막대 단추를 그리기 위해 프레임워크에서 호출됩니다.
CMFCCaptionBar::OnDrawImage 캡션 막대 이미지를 그리기 위해 프레임워크에서 호출됩니다.
CMFCCaptionBar::OnDrawText 캡션 막대 텍스트를 그리기 위해 프레임워크에서 호출됩니다.

데이터 멤버

이름 설명
CMFCCaptionBar::m_clrBarBackground 캡션 막대의 배경색입니다.
CMFCCaptionBar::m_clrBarBorder 캡션 막대의 테두리 색입니다.
CMFCCaptionBar::m_clrBarText 캡션 막대 텍스트의 색입니다.

설명

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

  1. CMFCCaptionBar 개체를 생성합니다. 일반적으로 프레임 창 클래스에 캡션 막대를 추가합니다.

  2. CMFCCaptionBar::Create 메서드를 호출하여 캡션 막대 컨트롤을 만들고 개체에 CMFCCaptionBar 연결합니다.

  3. CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIconCMFCCaptionBar::SetBitmap을 호출하여 캡션 막대 요소를 설정합니다.

단추 요소를 설정할 때 단추에 명령 ID를 할당해야 합니다. 사용자가 단추를 클릭하면 캡션 표시줄에서 이 ID가 있는 WM_COMMAND 메시지를 부모 프레임 창으로 라우팅합니다.

캡션 표시줄은 Microsoft Office 2007 응용 프로그램에 표시되는 메시지 표시줄을 에뮬레이트하는 메시지 표시줄 모드에서도 작동할 수 있습니다. 메시지 표시줄 모드에서 캡션 막대는 비트맵, 메시지 및 단추(일반적으로 대화 상자를 여는)를 표시합니다. 비트맵에 도구 설명을 할당할 수 있습니다.

메시지 표시줄 모드를 사용하도록 설정하려면 CMFCCaptionBar::Create를 호출하고 네 번째 매개 변수(bIsMessageBarMode)를 TRUE로 설정합니다.

예시

다음 예제에서는 CMFCCaptionBar 클래스에서 다양한 메서드를 사용하는 방법을 보여 줍니다. 이 예제에서는 캡션 막대 컨트롤을 만들고, 캡션 막대의 3D 테두리를 설정하고, 캡션 막대 요소의 가장자리와 캡션 막대 컨트롤 가장자리 사이의 거리를 픽셀 단위로 설정하고, 캡션 막대의 단추를 설정하고, 단추의 도구 설명을 설정하고, 캡션 막대의 텍스트 레이블을 설정하고, 캡션 비트맵 이미지를 설정하는 방법을 보여 줍니다. 막대를 입력하고 캡션 표시줄에서 이미지의 도구 설명을 설정합니다. 이 코드 조각은 MS Office 2007 데모 샘플일부입니다.

CMFCCaptionBar m_wndMessageBar;
BOOL CMainFrame::CreateMessageBar()
{
   // The this pointer points to a CMainFrame class which extends the CFrameWndEx class.
   if (!m_wndMessageBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_MESSAGEBAR, -1, TRUE))
   {
      TRACE0("Failed to create caption bar\n");
      return FALSE;
   }

   m_wndMessageBar.SetFlatBorder(FALSE);
   m_wndMessageBar.SetMargin(10);
   m_wndMessageBar.SetButton(_T("Options..."), ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
   m_wndMessageBar.SetButtonToolTip(_T("Click here to see more options"));

   m_wndMessageBar.SetText(_T("Welcome to the MFC MSOffice2007 demonstration!"), CMFCCaptionBar::ALIGN_LEFT);

   m_wndMessageBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
   m_wndMessageBar.SetImageToolTip(_T("Important"), _T("Please take a look at MSOffice2007Demo source code to learn how to create advanced user interface in minutes."));

   return TRUE;
}

상속 계층 구조

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCCaptionBar

요구 사항

헤더: afx캡션bar.h

CMFCCaptionBar::Create

캡션 막대 컨트롤을 만들어 개체에 CMFCCaptionBar 연결합니다.

BOOL Create(
    DWORD dwStyle,
    CWnd* pParentWnd,
    UINT uID,
    int nHeight=-1,
    BOOL bIsMessageBarMode=FALSE);

매개 변수

dwStyle
캡션 막대 스타일의 논리적 OR 조합입니다.

pParentWnd
캡션 막대 컨트롤의 부모 창입니다.

Uid
캡션 막대 컨트롤의 ID입니다.

nHeight
캡션 막대 컨트롤의 높이(픽셀)입니다. -1이면 아이콘의 높이, 텍스트 및 캡션 막대 컨트롤이 표시하는 단추에 따라 높이가 계산됩니다.

bIsMessageBarMode
true이면 캡션 표시줄이 메시지 표시줄 모드에 있습니다. 그렇지 않으면 FALSE입니다.

Return Value

true이면 캡션 막대 컨트롤이 성공적으로 만들어집니다. 그렇지 않으면 FALSE입니다.

설명

두 단계로 개체를 CMFCCaptionBar 생성합니다. 먼저 생성자를 호출한 다음 Windows 컨트롤을 Create 만들고 개체에 연결하는 메서드를 CMFCCaptionBar 호출합니다.

CMFCCaptionBar::D oesAllowDynInsertBefore

캡션 막대와 부모 프레임 사이에 다른 창을 동적으로 삽입할 수 있는지 여부를 나타냅니다.

virtual BOOL DoesAllowDynInsertBefore() const;

Return Value

재정의되지 않는 한 FALSE를 반환합니다.

설명

CMFCCaptionBar::EnableButton

캡션 표시줄에서 단추를 사용하거나 사용하지 않도록 설정합니다.

void EnableButton(BOOL bEnable=TRUE);

매개 변수

bEnable
[in] 단추를 사용하도록 설정하려면 TRUE, 단추를 사용하지 않도록 설정하려면 FALSE입니다.

CMFCCaptionBar::GetAlignment

지정된 요소의 맞춤을 반환합니다.

BarElementAlignment GetAlignment(BarElement elem);

매개 변수

Elem
[in] 맞춤을 검색할 캡션 막대 요소입니다.

Return Value

단추, 비트맵, 텍스트 또는 아이콘과 같은 요소의 맞춤입니다.

설명

요소의 맞춤은 다음 값 중 하나일 수 있습니다.

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::GetBorderSize

캡션 막대의 테두리 크기를 반환합니다.

int GetBorderSize() const;

Return Value

테두리의 크기(픽셀)입니다.

CMFCCaptionBar::GetButtonRect

캡션 표시줄에 있는 단추의 경계 사각형을 검색합니다.

CRect GetButtonRect() const;

Return Value

CRect 캡션 막대에 있는 단추의 경계 사각형 좌표를 포함하는 개체입니다.

CMFCCaptionBar::GetMargin

캡션 막대 요소의 가장자리와 캡션 막대 컨트롤의 가장자리 사이의 거리를 반환합니다.

int GetMargin() const;

Return Value

캡션 막대 요소의 가장자리와 캡션 막대 컨트롤의 가장자리 사이의 거리(픽셀)입니다.

CMFCCaptionBar::IsMessageBarMode

캡션 표시줄이 메시지 표시줄 모드에 있는지 여부를 지정합니다.

BOOL IsMessageBarMode() const;

Return Value

true이면 캡션 표시줄이 메시지 표시줄 모드에 있습니다. 그렇지 않으면 FALSE입니다.

설명

메시지 표시줄 모드에서 캡션 막대는 도구 설명, 메시지 텍스트 및 단추가 있는 이미지를 표시합니다.

CMFCCaptionBar::m_clrBarBackground

캡션 막대의 배경색입니다.

COLORREF m_clrBarBackground

CMFCCaptionBar::m_clrBarBorder

캡션 막대의 테두리 색입니다.

COLORREF m_clrBarBorder

CMFCCaptionBar::m_clrBarText

캡션 막대 텍스트의 색입니다.

COLORREF m_clrBarText

CMFCCaptionBar::OnDrawBackground

캡션 막대의 배경을 채우기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawBackground(
    CDC* pDC,
    CRect rect);

매개 변수

pDC
[in] 캡션 막대의 디바이스 컨텍스트에 대한 포인터입니다.

rect
[in] 채울 경계 사각형입니다.

설명

OnDrawBackground 캡션 막대의 배경이 채워질 때 메서드가 호출됩니다. 기본 구현은 CMFCCaptionBar::m_clrBarBackground 색을 사용하여 배경을 채웁니다.

파생 클래스에서 이 메서드를 CMFCCaptionBar 재정의하여 캡션 막대의 모양을 사용자 지정합니다.

CMFCCaptionBar::OnDrawBorder

캡션 막대의 테두리를 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect rect);

매개 변수

pDC
[in] 테두리를 표시하는 데 사용되는 디바이스 컨텍스트입니다.

rect
[in] 경계 사각형입니다.

설명

기본적으로 테두리에는 플랫 스타일이 있습니다.

파생 클래스에서 이 메서드를 CMFCCaptionBar 재정의하여 캡션 막대의 테두리 모양을 사용자 지정합니다.

CMFCCaptionBar::OnDrawButton

캡션 막대 단추를 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawButton(
    CDC* pDC,
    CRect rect,
    const CString& strButton,
    BOOL bEnabled);

매개 변수

pDC
[in] 단추를 표시하는 데 사용되는 디바이스 컨텍스트에 대한 포인터입니다.

rect
[in] 단추의 경계 사각형입니다.

strButton
[in] 단추의 텍스트 레이블입니다.

bEnabled
[in] 단추를 사용하는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

파생 클래스에서 이 메서드를 CMFCCaptionBar 재정의하여 캡션 막대 단추의 모양을 사용자 지정합니다.

CMFCCaptionBar::OnDrawImage

캡션 막대 이미지를 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawImage(
    CDC* pDC,
    CRect rect);

매개 변수

pDC
[in] 이미지를 표시하는 데 사용되는 디바이스 컨텍스트에 대한 포인터입니다.

rect
[in] 이미지의 경계 사각형을 지정합니다.

설명

파생 클래스에서 이 메서드를 재정의 CMFCCaptionBar 하여 이미지 모양을 사용자 지정합니다.

CMFCCaptionBar::OnDrawText

캡션 막대 텍스트를 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawText(
    CDC* pDC,
    CRect rect,
    const CString& strText);

매개 변수

pDC
[in] 단추를 표시하는 데 사용되는 디바이스 컨텍스트에 대한 포인터입니다.

rect
[in] 텍스트의 경계 사각형입니다.

strText
[in] 표시할 텍스트 문자열입니다.

설명

기본 구현에서는 CMFCCaptionBar::m_clrBarText 색을 사용하여 CDC::DrawText텍스트를 표시합니다.

파생 클래스에서 이 메서드를 CMFCCaptionBar 재정의하여 캡션 막대 텍스트의 모양을 사용자 지정합니다.

CMFCCaptionBar::RemoveBitmap

캡션 막대에서 비트맵 이미지를 제거합니다.

void RemoveBitmap();

CMFCCaptionBar::RemoveButton

캡션 표시줄에서 단추를 제거합니다.

void RemoveButton();

설명

캡션 막대 요소의 레이아웃이 자동으로 조정됩니다.

CMFCCaptionBar::RemoveIcon

캡션 표시줄에서 아이콘을 제거합니다.

void RemoveIcon();

CMFCCaptionBar::RemoveText

캡션 막대에서 텍스트 레이블을 제거합니다.

void RemoveText();

CMFCCaptionBar::SetBitmap

캡션 막대의 비트맵 이미지를 설정합니다.

void SetBitmap(
    HBITMAP hBitmap,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

void SetBitmap(
    UINT uiBmpResID,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

매개 변수

hBitmap
[in] 설정할 비트맵에 대한 핸들입니다.

clrTransparent
[in] 비트맵의 투명한 색을 지정하는 RGB 값입니다.

bStretch
[in] TRUE이면 비트맵이 이미지 경계 사각형에 맞지 않으면 확장됩니다. 그렇지 않으면 비트맵이 늘어나지 않습니다.

bmpAlignment
[in] 비트맵의 맞춤입니다.

설명

이 메서드를 사용하여 캡션 막대에 비트맵을 설정합니다.

이전 비트맵은 자동으로 제거됩니다. CMFCCaptionBar::SetIcon 메서드를 호출했기 때문에 캡션 막대에 아이콘이 표시되면 CMFCCaptionBar::RemoveIcon을 호출하여 아이콘을 제거하지 않으면 비트맵이 표시되지 않습니다.

비트맵은 bmpAlignment 매개 변수에 지정된 대로 정렬됩니다. 이 매개 변수는 다음 BarElementAlignment 값 중 하나일 수 있습니다.

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetBorderSize

캡션 막대의 테두리 크기를 설정합니다.

void SetBorderSize(int nSize);

매개 변수

nSize
[in] 캡션 막대 테두리의 새 크기(픽셀)입니다.

CMFCCaptionBar::SetButton

캡션 막대의 단추를 설정합니다.

void SetButton(
    LPCTSTR lpszLabel,
    UINT uiCmdUI,
    BarElementAlignment btnAlignmnet=ALIGN_LEFT,
    BOOL bHasDropDownArrow=TRUE);

매개 변수

lpszLabel
단추의 명령 레이블입니다.

uiCmdUI
단추의 명령 ID입니다.

btnAlignmnet
단추의 맞춤입니다.

bHasDropDownArrow
단추에 드롭다운 화살표가 표시되면 TRUE이고, 그렇지 않으면 FALSE입니다.

CMFCCaptionBar::SetButtonPressed

단추를 계속 누를지 여부를 지정합니다.

void SetButtonPressed(BOOL bPresed=TRUE);

매개 변수

bPresed
단추가 누른 상태를 유지하면 TRUE이고, 그렇지 않으면 FALSE입니다.

CMFCCaptionBar::SetButtonToolTip

단추의 도구 설명을 설정합니다.

void SetButtonToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

매개 변수

lpszToolTip
[in] 도구 설명이 캡션.

lpszDescription
[in] 도구 설명 설명입니다.

CMFCCaptionBar::SetFlatBorder

캡션 막대의 테두리 스타일을 설정합니다.

void SetFlatBorder(BOOL bFlat=TRUE);

매개 변수

bFlat
[in] true이면 캡션 막대의 테두리가 평평합니다. 테두리가 3D이면 FALSE입니다.

CMFCCaptionBar::SetIcon

캡션 막대의 아이콘을 설정합니다.

void SetIcon(
    HICON hIcon,
    BarElementAlignment iconAlignment=ALIGN_RIGHT);

매개 변수

hIcon
[in] 설정할 아이콘의 핸들입니다.

iconAlignment
[in] 아이콘의 맞춤입니다.

설명

캡션 막대는 아이콘 또는 비트맵을 표시할 수 있습니다. 비트맵을 표시하는 방법을 알아보려면 CMFCCaptionBar::SetBitmap을 참조하세요. 아이콘과 비트맵을 모두 설정하면 아이콘이 항상 표시됩니다. CMFCCaptionBar::RemoveIcon을 호출하여 캡션 표시줄에서 아이콘을 제거합니다.

아이콘은 iconAlignment 매개 변수에 따라 정렬됩니다. 다음 BarElementAlignment 값 중 하나일 수 있습니다.

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetImageToolTip

캡션 표시줄에서 이미지의 도구 설명을 설정합니다.

void SetImageToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

매개 변수

lpszToolTip
[in] 도구 설명의 텍스트입니다.

lpszDescription
[in] 도구 설명 설명입니다.

CMFCCaptionBar::SetMargin

캡션 막대 요소의 가장자리와 캡션 막대 컨트롤의 가장자리 사이의 거리를 설정합니다.

void SetMargin(int nMargin);

매개 변수

nMargin
[in] 캡션 막대 요소의 가장자리와 캡션 막대 컨트롤의 가장자리 사이의 거리(픽셀)입니다.

CMFCCaptionBar::SetText

캡션 막대의 텍스트 레이블을 설정합니다.

void SetText(
    const CString& strText,
    BarElementAlignment textAlignment=ALIGN_RIGHT);

매개 변수

strText
[in] 설정할 텍스트 문자열입니다.

textAlignment
[in] 텍스트 맞춤입니다.

설명

텍스트 레이블은 textAlignment 매개 변수에 지정된 대로 정렬됩니다. 다음 BarElementAlignment 값 중 하나일 수 있습니다.

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

참고 항목

계층 구조 차트
클래스