다음을 통해 공유


CMFCColorButton 클래스

CMFCColorButtoncmfccolorbar 클래스 클래스는 색 선택 컨트롤을 구현하는데 함께 사용됩니다.

구문

class CMFCColorButton : public CMFCButton

멤버

공용 생성자

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

공용 메서드

이름 설명
CMFCColorButton::EnableAutomaticButton 일반 색 단추 위에 있는 "자동" 단추를 사용하거나 사용하지 않도록 설정합니다. (표준 시스템 자동 단추에 레이블이 지정됨 자동).
CMFCColorButton::EnableOtherButton 일반 색 단추 아래에 있는 "기타" 단추를 사용하거나 사용하지 않도록 설정합니다. (표준 시스템 "기타" 단추에 레이블이 지정됨 다른 색입니다.)
CMFCColorButton::GetAutomaticColor 현재 자동 색을 검색합니다.
CMFCColorButton::GetColor 단추의 색을 검색합니다.
CMFCColorButton::SetColor 단추의 색을 설정합니다.
CMFCColorButton::SetColorName 색 이름을 설정합니다.
CMFCColorButton::SetColumnsNumber 색 선택 대화 상자의 열 수를 설정합니다.
CMFCColorButton::SetDocumentColors 색 선택 대화 상자에 표시되는 문서별 색 목록을 지정합니다.
CMFCColorButton::SetPalette 표준 표시 색의 색상표를 지정합니다.
CMFCColorButton::SizeToContent 텍스트 및 이미지 크기에 따라 단추 컨트롤의 크기를 변경합니다.

보호된 메서드

속성 설명
CMFCColorButton::IsDrawXPTheme 현재 색 단추가 Windows XP의 비주얼 스타일에 표시되는지 여부를 나타냅니다.
CMFCColorButton::OnDraw 단추 이미지를 표시하기 위해 프레임워크에서 호출됩니다.
CMFCColorButton::OnDrawBorder 단추의 테두리를 표시하기 위해 프레임워크에서 호출됩니다.
CMFCColorButton::OnDrawFocusRect 단추에 포커스가 있을 때 포커스 사각형을 표시하기 위해 프레임워크에서 호출됩니다.
CMFCColorButton::OnShowColorPopup 색 선택 대화 상자가 표시될 때 프레임워크에서 호출됩니다.
CMFCColorButton::RebuildPalette 보호된 데이터 멤버를 m_pPalette 지정된 색상표 또는 기본 시스템 팔레트로 초기화합니다.
CMFCColorButton::UpdateColor 사용자가 색 선택 대화 상자의 색상표에서 색을 선택할 때 프레임워크에서 호출됩니다.

데이터 멤버

이름 설명
m_bAltColorDlg 부울입니다. TRUE이면 다른 단추를 클릭하거나 FALSE이면 시스템 색 대화 상자가 CMFCColorDialog 색 대화 상자를 표시합니다. 기본값은 TRUE입니다. 자세한 내용은 CMFCColorButton::EnableOtherButton을 참조하세요.
m_bAutoSetFocus 부울입니다. TRUE이면 메뉴가 표시될 때 또는 FALSE인 경우 프레임워크가 색 메뉴에 포커스를 설정해도 포커스가 변경되지 않습니다. 기본값은 TRUE입니다.
CMFCColorButton::m_bEnabledInCustomizeMode 색 단추에 사용자 지정 모드를 사용할 수 있는지 여부를 나타냅니다.
m_Color COLORREF 값입니다. 현재 선택한 색을 포함합니다.
m_ColorAutomatic COLORREF 값입니다. 현재 선택한 기본 색을 포함합니다.
m_Colors COLORREF 값의 CArray입니다. 현재 사용 가능한 색을 포함합니다.
m_lstDocColors COLORREF 값의 CList입니다. 현재 문서 색을 포함합니다.
m_nColumns 정수입니다. 색 선택 메뉴의 색 눈금에 표시할 열 수를 포함합니다.
m_pPalette CPalette에 대한 포인터입니다. 현재 색 선택 메뉴에서 사용할 수 있는 색을 포함합니다.
m_pPopup CMFCColorPopupMenu 클래스 개체에 대한 포인터입니다. 색 단추를 클릭할 때 표시되는 색 선택 메뉴입니다.
m_strAutoColorText 문자열 색 선택 메뉴의 "자동" 단추 레이블입니다.
m_strDocColorsText 문자열 문서 색을 표시하는 색 선택 메뉴의 단추 레이블입니다.
m_strOtherText 문자열 색 선택 메뉴에 있는 "기타" 단추의 레이블입니다.

설명

기본적으로 클래스는 CMFCColorButton 색 선택 대화 상자를 여는 푸시 단추로 작동합니다. 색 선택 대화 상자에는 작은 색 단추 배열과 사용자 지정 색 선택을 표시하는 "기타" 단추가 포함되어 있습니다. (표준 시스템 "기타" 단추에 레이블이 지정됨 다른 색입니다.) 사용자가 새 색을 선택하면 개체가 CMFCColorButton 변경 사항을 반영하고 선택한 색을 표시합니다.

코드에서 직접 또는 ClassWizard 도구 및 대화 상자 템플릿을 사용하여 색 단추 컨트롤을 만듭니다. 색 단추 컨트롤을 직접 만드는 경우 애플리케이션에 변수를 추가한 CMFCColorButton 다음 개체의 생성자 및 Create 메서드를 CMFCColorButton 호출합니다. ClassWizard사용하는 경우 애플리케이션에 변수를 추가 CButton 한 다음 변수의 형식을 .로 CButtonCMFCColorButton변경합니다.

색 선택 대화 상자(CMFCColorBar 클래스)는 프레임워크가 이벤트 처리기를 호출 OnLButtonDown 할 때 CMFCColorButton::OnShowColorPopup 메서드에 의해 표시됩니다. CMFCColorButton::OnShowColorPopup 메서드를 재정의하여 사용자 지정 색 선택을 지원할 수 있습니다.

개체는 CMFCColorButton WM_COMMAND 전송하여 색이 변경되고 있음을 부모에 알깁니다. | BN_CLICKED 알림입니다. 부모는 CMFCColorButton::GetColor 메서드를 사용하여 현재 색을 검색합니다.

예시

다음 예제에서는 클래스의 다양한 메서드 CMFCColorButton 를 사용하여 색 단추를 구성하는 방법을 보여 줍니다. 메서드는 색 단추의 색과 열 수를 설정하고 자동 및 다른 단추를 사용하도록 설정합니다. 이 예제는 상태 표시줄 데모 샘플일부입니다.

CMFCColorButton m_wndTextColor;
m_wndTextColor.EnableAutomaticButton(_T("Default"), afxGlobalData.clrBtnText);
m_wndTextColor.EnableOtherButton(_T("Other..."));
m_wndTextColor.SetColor((COLORREF)-1);
m_wndTextColor.SetColorName((COLORREF)-1, "Default Color");
m_wndTextColor.SetColumnsNumber(3);

요구 사항

헤더: afxcolorbutton.h

CMFCColorButton::CMFCColorButton

CMFCColorButton 개체를 생성합니다.

CMFCColorButton();

CMFCColorButton::EnableAutomaticButton

색 선택 컨트롤의 "자동" 단추를 사용하거나 사용하지 않도록 설정하고 자동(기본값) 색을 설정합니다.

void EnableAutomaticButton(
    LPCTSTR lpszLabel,
    COLORREF colorAutomatic,
    BOOL bEnable=TRUE);

매개 변수

lpszLabel
[in] 자동 단추의 텍스트를 지정합니다.

colorAutomatic
[in] 자동 단추의 기본 색을 지정하는 RGB 값입니다.

bEnable
[in] 자동 단추를 사용할지 여부를 지정합니다.

설명

CMFCColorButton::EnableOtherButton

일반 색 단추 아래에 표시되는 "기타" 단추를 사용하거나 사용하지 않도록 설정합니다.

void EnableOtherButton(
    LPCTSTR lpszLabel,
    BOOL bAltColorDlg=TRUE,
    BOOL bEnable=TRUE);

매개 변수

lpszLabel
[in] 단추의 텍스트를 지정합니다.

bAltColorDlg
[in] 사용자가 단추를 클릭할 때 CMFCColorDialog 대화 상자 또는 시스템 색 대화 상자가 열릴지 여부를 지정합니다.

bEnable
[in] "기타" 단추를 사용할지 여부를 지정합니다.

설명

"기타" 단추를 클릭하여 색 대화 상자를 표시합니다. bAltColorDlg 매개 변수가 TRUE이면 CMFCColorDialog 클래스가 표시되고, 그렇지 않으면 시스템 색 대화 상자가 표시됩니다.

CMFCColorButton::GetAutomaticColor

현재 자동(기본값) 색을 검색합니다.

COLORREF GetAutomaticColor() const;

Return Value

현재 자동 색을 나타내는 RGB 값입니다.

설명

현재 자동 색은 CMFCColorButton::EnableAutomaticButton 메서드에 의해 설정됩니다.

CMFCColorButton::GetColor

현재 선택한 색을 검색합니다.

COLORREF GetColor() const;

Return Value

RGB 값입니다.

설명

CMFCColorButton::IsDrawXPTheme

현재 색 단추가 Windows XP의 비주얼 스타일에 표시되는지 여부를 나타냅니다.

BOOL IsDrawXPTheme() const;

Return Value

TRUE이면 비주얼 스타일이 지원되고 현재 색 단추가 Windows XP의 비주얼 스타일에 표시됩니다. 그렇지 않으면 FALSE입니다.

CMFCColorButton::m_bEnabledInCustomizeMode

색 단추를 사용자 지정 모드로 설정합니다.

BOOL m_bEnabledInCustomizeMode;

설명

사용자 지정 대화 상자의 페이지에 색 단추를 추가해야 하거나 사용자 지정 중에 다른 색을 선택할 수 있도록 허용해야 하는 경우 멤버를 TRUE로 설정하여 단추를 사용하도록 설정합니다 m_bEnabledInCustomizeMode . 기본적으로 이 멤버는 FALSE로 설정됩니다.

CMFCColorButton::OnDraw

단추 이미지를 렌더링하기 위해 프레임워크에서 호출됩니다.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    UINT uiState);

매개 변수

pDC
[in] 단추의 이미지를 렌더링하는 데 사용되는 디바이스 컨텍스트를 가리킵니다.

rect
[in] 단추를 경계로 하는 사각형입니다.

uiState
[in] 단추의 시각적 상태를 지정합니다.

설명

렌더링 프로세스를 사용자 지정하려면 이 메서드를 재정의합니다.

CMFCColorButton::OnDrawBorder

단추의 테두리를 표시하기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect& rectClient,
    UINT uiState);

매개 변수

pDC
[in] 테두리를 그리는 데 사용되는 디바이스 컨텍스트를 가리킵니다.

rectClient
[in] 그릴 단추의 경계를 정의하는 pDC 매개 변수에 의해 지정된 디바이스 컨텍스트의 사각형입니다.

uiState
[in] 단추의 시각적 상태를 지정합니다.

설명

색 단추의 테두리 모양을 사용자 지정하려면 이 함수를 재정의합니다.

CMFCColorButton::OnDrawFocusRect

단추에 포커스가 있을 때 포커스 사각형을 표시하기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawFocusRect(
    CDC* pDC,
    const CRect& rectClient);

매개 변수

pDC
[in] 포커스 사각형을 그리는 데 사용되는 디바이스 컨텍스트를 가리킵니다.

rectClient
[in] 단추의 경계를 정의하는 pDC 매개 변수로 지정된 디바이스 컨텍스트의 사각형입니다.

설명

포커스 사각형의 모양을 사용자 지정하려면 이 메서드를 재정의합니다.

CMFCColorButton::OnShowColorPopup

팝업 색 막대가 표시되기 전에 호출됩니다.

virtual void OnShowColorPopup();

설명

CMFCColorButton::RebuildPalette

보호된 데이터 멤버를 m_pPalette 지정된 색상표 또는 기본 시스템 팔레트로 초기화합니다.

void RebuildPalette(CPalette* pPal);

매개 변수

pPal
[in] 논리 팔레트 또는 NULL에 대한 포인터입니다. NULL인 경우 기본 시스템 팔레트가 사용됩니다.

CMFCColorButton::SetColor

단추의 색을 지정합니다.

void SetColor(COLORREF color);

매개 변수

color
[in] RGB 값입니다.

설명

CMFCColorButton::SetColorName

색의 이름을 지정합니다.

static void SetColorName(
    COLORREF color,
    const CString& strName);

매개 변수

color
[in] 색의 RGB 값입니다.

strName
[in] 색의 이름입니다.

설명

색 이름 목록은 애플리케이션별로 전역입니다. 따라서 이 메서드는 해당 매개 변수를 CMFCColorBar::SetColorName으로 전송합니다.

CMFCColorButton::SetColumnsNumber

사용자의 색 선택 프로세스 중에 사용자에게 표시되는 색 표에 표시되는 열 수를 정의합니다.

void SetColumnsNumber(int nColumns);

매개 변수

nColumns
[in] 열 수를 지정합니다.

설명

사용자는 미리 정의된 색 테이블을 표시하는 팝업 색 표시줄에서 색을 선택할 수 있습니다. 이 메서드를 사용하여 테이블의 열 수를 정의합니다.

CMFCColorButton::SetDocumentColors

색 집합과 집합의 이름을 지정합니다. CMFCColorBar 클래스 개체를 사용하여 색 집합이 표시됩니다.

void SetDocumentColors(
    LPCTSTR lpszLabel,
    CList<COLORREF,COLORREF>& lstColors);

매개 변수

lpszLabel
[in] 문서 색 집합으로 표시할 레이블을 지정합니다.

lstColors
[in] RGB 값 목록에 대한 참조입니다.

설명

개체는 CMFCColorButton 기본 CMFCColorBar 클래스 개체로 전송되는 RGB 값 목록을 가져옵니다. 색 막대가 표시되면 이러한 색은 lpszLabel 매개 변수에 의해 레이블이 지정된 특수 섹션에 표시됩니다.

CMFCColorButton::SetPalette

팝업 색 표시줄에 표시할 표준 색을 지정합니다.

void SetPalette(CPalette* pPalette);

매개 변수

pPalette
[in] 색상표에 대한 포인터입니다.

설명

CMFCColorButton::SizeToContent

단추 컨트롤의 크기를 텍스트와 이미지에 맞게 조정합니다.

virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);

매개 변수

bCalcOnly
[in] 0이 아닌 경우 단추 컨트롤의 새 크기가 계산되지만 실제 크기는 변경되지 않습니다.

Return Value

CSize 새 단추 컨트롤 크기를 지정하는 개체입니다.

설명

CMFCColorButton::UpdateColor

사용자가 색 단추를 클릭할 때 표시되는 색 표시줄에서 색을 선택할 때 프레임워크에서 호출됩니다.

virtual void UpdateColor(COLORREF color);

매개 변수

color
[in] 사용자가 선택한 색입니다.

설명

함수는 UpdateColor 현재 선택한 단추의 색을 변경하고 BN_CLICKED 표준 알림과 함께 WM_COMMAND 메시지를 보내 부모에 알립니다. CMFCColorButton::GetColor 메서드를 사용하여 선택한 색을 검색합니다.

참고 항목

계층 구조 차트
클래스
CMFCButton 클래스
CMFCColorBar 클래스
CMFCColorButton::OnShowColorPopup
COLORREF
CPalette 클래스
CArray 클래스
CList 클래스
CString