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 | 캡션 표시줄 텍스트의 색입니다. |
설명
캡션 표시줄을 만들려면 다음 단계를 수행합니다.
CMFCCaptionBar
개체를 생성합니다. 일반적으로 프레임 창 클래스에 캡션 표시줄을 추가합니다.CMFCCaptionBar::Create 메서드를 호출하여 캡션 표시줄 컨트롤을 만들고 개체에
CMFCCaptionBar
연결합니다.CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon 및 CMFCCaptionBar::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;
}
상속 계층 구조
요구 사항
헤더: afxcaptionbar.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