CMFCColorMenuButton 클래스
이 클래스는 CMFCColorMenuButton
색 선택 대화 상자를 시작하는 메뉴 명령 또는 도구 모음 단추를 지원합니다.
구문
class CMFCColorMenuButton : public CMFCToolBarMenuButton
멤버
공용 생성자
속성 | 설명 |
---|---|
CMFCColorMenuButton::CMFCColorMenuButton | CMFCColorMenuButton 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CMFCColorMenuButton::EnableAutomaticButton | 일반 색 단추 위에 있는 "자동" 단추를 사용하거나 사용하지 않도록 설정합니다. (표준 시스템 자동 단추에 레이블이 지정됨 자동). |
CMFCColorMenuButton::EnableDocumentColors | 시스템 색 대신 문서별 색을 표시할 수 있습니다. |
CMFCColorMenuButton::EnableOtherButton | 일반 색 단추 아래에 있는 "기타" 단추를 사용하거나 사용하지 않도록 설정합니다. (표준 시스템 "기타" 단추에 레이블이 지정됨 다른 색입니다.) |
CMFCColorMenuButton::EnableTearOff | 색 창을 떼어내는 기능을 사용하도록 설정합니다. |
CMFCColorMenuButton::GetAutomaticColor | 현재 자동 색을 검색합니다. |
CMFCColorMenuButton::GetColor | 현재 단추의 색을 검색합니다. |
CMFCColorMenuButton::GetColorByCmdID | 지정된 명령 ID에 해당하는 색을 검색합니다. |
CMFCColorMenuButton::OnChangeParentWnd | 부모 창이 변경되면 프레임워크에서 호출됩니다. |
CMFCColorMenuButton::OpenColorDialog | 색 선택 대화 상자를 엽니다. |
CMFCColorMenuButton::SetColor | 현재 색 단추의 색을 설정합니다. |
CMFCColorMenuButton::SetColorByCmdID | 지정한 색 메뉴 단추의 색을 설정합니다. |
CMFCColorMenuButton::SetColorName | 지정된 색의 새 이름을 설정합니다. |
CMFCColorMenuButton::SetColumnsNumber | 개체에 표시되는 CMFCColorBar 열 수를 설정합니다. |
보호된 메서드
속성 | 설명 |
---|---|
CMFCColorMenuButton::CopyFrom | 다른 도구 모음 단추를 현재 단추에 복사합니다. |
CMFCColorMenuButton::CreatePopupMenu | 색 선택 대화 상자를 만듭니다. |
CMFCColorMenuButton::IsEmptyMenuAllowed | 빈 메뉴가 지원되는지 여부를 나타냅니다. |
CMFCColorMenuButton::OnDraw | 단추에 이미지를 표시하기 위해 프레임워크에서 호출됩니다. |
CMFCColorMenuButton::OnDrawOnCustomizeList | 도구 모음 사용자 지정 대화 상자 목록에 개체가 표시되기 전에 CMFCColorMenuButton 프레임워크에서 호출됩니다. |
설명
원래 메뉴 명령 또는 도구 모음 단추를 개체로 CMFCColorMenuButton
바꾸려면 개체를 CMFCColorMenuButton
만들고 적절한 CMFCColorBar 클래스 스타일을 설정한 다음 CMFCToolBar 클래스 클래스의 메서드를 호출 ReplaceButton
합니다. 도구 모음을 사용자 지정하는 경우 CMFCToolBarsCustomizeDialog::ReplaceButton 메서드를 호출합니다.
CMFCColorMenuButton::CreatePopupMenu 이벤트 처리기를 처리하는 동안 색 선택 대화 상자가 만들어집니다. 이벤트 처리기는 부모 프레임에 WM_COMMAND 메시지를 알 수 있습니다. 개체는 CMFCColorMenuButton
원래 메뉴 명령 또는 도구 모음 단추에 할당된 컨트롤 ID를 보냅니다.
예시
다음 예제에서는 클래스의 다양한 메서드 CMFCColorMenuButton
를 사용하여 색 메뉴 단추를 만들고 구성하는 방법을 보여 줍니다. 이 예제에서는 먼저 개체를 CPalette
만든 다음 클래스의 CMFCColorMenuButton
개체를 생성하는 데 사용됩니다. CMFCColorMenuButton
그런 다음 자동 및 기타 단추를 사용하도록 설정하고 색과 열 수를 설정하여 개체를 구성합니다. 이 코드는 Word Pad 샘플의 일부입니다.
CPalette m_palColorPicker; // Palette for color picker
int m_nNumColours;
CMFCColorMenuButton *CFormatBar::CreateColorButton()
{
if (m_palColorPicker.GetSafeHandle() == NULL)
{
m_nNumColours = sizeof(crColours) / sizeof(ColourTableEntry);
ASSERT(m_nNumColours <= MAX_COLOURS);
if (m_nNumColours > MAX_COLOURS)
m_nNumColours = MAX_COLOURS;
// Create the palette
struct
{
LOGPALETTE LogPalette;
PALETTEENTRY PalEntry[MAX_COLOURS];
} pal;
LOGPALETTE *pLogPalette = (LOGPALETTE*)&pal;
pLogPalette->palVersion = 0x300;
pLogPalette->palNumEntries = (WORD)m_nNumColours;
for (int i = 0; i < m_nNumColours; i++)
{
pLogPalette->palPalEntry[i].peRed = GetRValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peGreen = GetGValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peBlue = GetBValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peFlags = 0;
}
m_palColorPicker.CreatePalette(pLogPalette);
}
CMFCColorMenuButton *pColorButton = new CMFCColorMenuButton(ID_CHAR_COLOR, _T("Text Color..."), &m_palColorPicker);
pColorButton->EnableAutomaticButton(_T("Automatic"), RGB(0, 0, 0));
pColorButton->EnableOtherButton(_T("More Colors..."));
pColorButton->EnableDocumentColors(_T("Document's Colors"));
pColorButton->EnableTearOff(ID_COLOR_TEAROFF, 5, 2);
pColorButton->SetColumnsNumber(8);
pColorButton->SetColor(RGB(0, 0, 255));
// Initialize color names:
for (int i = 0; i < m_nNumColours; i++)
{
CMFCColorMenuButton::SetColorName(crColours[i].crColour, crColours[i].szName);
}
return pColorButton;
}
상속 계층 구조
요구 사항
헤더: afxcolormenubutton.h
CMFCColorMenuButton::CMFCColorMenuButton
CMFCColorMenuButton
개체를 생성합니다.
CMFCColorMenuButton();
CMFCColorMenuButton(
UINT uiCmdID,
LPCTSTR lpszText,
CPalette* pPalette=NULL);
매개 변수
uiCmdID
[in] 단추 명령 ID입니다.
lpszText
[in] 단추 텍스트입니다.
pPalette
[in] 단추의 색상표에 대한 포인터입니다.
Return Value
설명
첫 번째 생성자는 기본 생성자입니다. 개체의 현재 색 및 자동 색은 검정(RGB(0, 0, 0))으로 초기화됩니다.
두 번째 생성자는 지정된 명령 ID에 해당하는 색으로 단추를 초기화합니다.
CMFCColorMenuButton::CopyFrom
하나의 CMFCToolBarMenuButton 클래스 파생 개체를 다른 개체에 복사합니다.
virtual void CopyFrom(const CMFCToolBarButton& src);
매개 변수
src
[in] 복사할 원본 단추입니다.
설명
개체에서 파생된 개체를 복사하려면 이 메서드를 재정의 CMFCColorMenuButton
합니다.
CMFCColorMenuButton::CreatePopupMenu
색 선택 대화 상자를 만듭니다.
virtual CMFCPopupMenu* CreatePopupMenu();
Return Value
색 선택 대화 상자를 나타내는 개체입니다.
설명
이 메서드는 사용자가 색 메뉴 단추를 누를 때 프레임워크에서 호출됩니다.
CMFCColorMenuButton::EnableAutomaticButton
일반 색 단추 위에 있는 "자동" 단추를 사용하거나 사용하지 않도록 설정합니다. (표준 시스템 자동 단추에 레이블이 지정됨 자동).
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
매개 변수
lpszLabel
[in] 단추가 자동으로 설정될 때 표시되는 단추 텍스트를 지정합니다.
colorAutomatic
[in] 새 자동 색을 지정합니다.
bEnable
[in] 단추가 자동인지 여부를 지정합니다.
설명
자동 단추는 현재 기본 색을 적용합니다.
CMFCColorMenuButton::EnableDocumentColors
시스템 색 대신 문서별 색을 표시할 수 있습니다.
void EnableDocumentColors(
LPCTSTR lpszLabel,
BOOL bEnable=TRUE);
매개 변수
lpszLabel
[in] 단추 텍스트를 지정합니다.
bEnable
[in] TRUE이면 문서별 색을 표시하거나 FALSE를 표시하여 시스템 색을 표시합니다.
설명
사용자가 색 메뉴 단추를 클릭할 때 현재 문서 색 또는 시스템 색상표 색을 표시하려면 이 메서드를 사용합니다.
CMFCColorMenuButton::EnableOtherButton
일반 색 단추 아래에 있는 "기타" 단추를 사용하거나 사용하지 않도록 설정합니다. (표준 시스템 "기타" 단추에 레이블이 지정됨 다른 색입니다.)
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
매개 변수
lpszLabel
[in] 단추 텍스트를 지정합니다.
bAltColorDlg
[in] 대화 상자를 표시하려면 TRUE를 CMFCColorDialog
지정하고, 표준 시스템 색 대화 상자를 표시하려면 FALSE를 지정합니다.
bEnable
[in] TRUE를 지정하여 "기타" 단추를 표시합니다. 그렇지 않으면 FALSE입니다. 기본값은 TRUE입니다.
설명
CMFCColorMenuButton::EnableTearOff
색 창을 떼어내는 기능을 사용하도록 설정합니다.
void EnableTearOff(
UINT uiID,
int nVertDockColumns=-1,
int nHorzDockRows=-1);
매개 변수
uiID
[in] 분리 창의 ID를 지정합니다.
nVertDockColumns
[in] 세로로 도킹된 색 창에서 분리 상태인 열 수를 지정합니다.
nHorzDockRows
[in] 분리 상태인 동안 가로로 도킹된 색 창의 행 수를 지정합니다.
설명
이 메서드를 호출하여 단추를 누를 때 CMFCColorMenuButton
나타나는 색 창에 대해 "분리" 기능을 사용하도록 설정합니다.
CMFCColorMenuButton::GetAutomaticColor
현재 자동 색을 검색합니다.
COLORREF GetAutomaticColor() const;
Return Value
현재 자동 색을 나타내는 RGB 색 값입니다.
설명
CMFCColorMenuButton::EnableAutomaticButton에 의해 설정된 자동 색을 가져오려면 이 메서드를 호출합니다.
CMFCColorMenuButton::GetColor
현재 단추의 색을 검색합니다.
COLORREF GetColor() const;
Return Value
단추의 색입니다.
설명
CMFCColorMenuButton::GetColorByCmdID
지정된 명령 ID에 해당하는 색을 검색합니다.
static COLORREF GetColorByCmdID(UINT uiCmdID);
매개 변수
uiCmdID
[in] 명령 ID입니다.
Return Value
지정된 명령 ID에 해당하는 색입니다.
설명
애플리케이션에 여러 색 단추가 있는 경우 이 메서드를 사용합니다. 사용자가 색 단추를 클릭하면 단추는 WM_COMMAND 메시지의 명령 ID를 부모에 보냅니다. 메서드는 GetColorByCmdID
명령 ID를 사용하여 해당 색을 검색합니다.
CMFCColorMenuButton::IsEmptyMenuAllowed
빈 메뉴가 지원되는지 여부를 나타냅니다.
virtual BOOL IsEmptyMenuAllowed() const;
Return Value
빈 메뉴가 허용되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
빈 메뉴는 기본적으로 지원됩니다. 파생 클래스에서 이 동작을 변경하려면 이 메서드를 재정의합니다.
CMFCColorMenuButton::OnChangeParentWnd
부모 창이 변경되면 프레임워크에서 호출됩니다.
virtual void OnChangeParentWnd(CWnd* pWndParent);
매개 변수
pWndParent
[in] 새 부모 창에 대한 포인터입니다.
설명
CMFCColorMenuButton::OnDraw
단추에 이미지를 표시하기 위해 프레임워크에서 호출됩니다.
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz=TRUE,
BOOL bCustomizeMode=FALSE,
BOOL bHighlight=FALSE,
BOOL bDrawBorder=TRUE,
BOOL bGrayDisabledButtons=TRUE);
매개 변수
pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.
rect
[in] 다시 그릴 영역을 경계로 하는 사각형입니다.
pImages
[in] 도구 모음 이미지 목록을 가리킵니다.
bHorz
[in] TRUE이면 도구 모음이 가로 도킹된 상태로 지정됩니다. 그렇지 않으면 FALSE입니다. 기본값은 TRUE입니다.
bCustomizeMode
[in] TRUE이면 애플리케이션이 사용자 지정 모드에 있음을 지정합니다. 그렇지 않으면 FALSE입니다. 기본값은 FALSE입니다.
bHighlight
[in] TRUE이면 단추가 강조 표시되도록 지정합니다. 그렇지 않으면 FALSE입니다. 기본값은 FALSE입니다.
bDrawBorder
[in] TRUE이면 단추의 테두리가 표시됩니다. 그렇지 않으면 FALSE입니다. 기본값은 TRUE입니다.
bGrayDisabledButtons
[in] TRUE이면 비활성화된 단추가 회색으로 표시(흐리게 표시됨)되도록 지정합니다. 그렇지 않으면 FALSE입니다. 기본값은 TRUE입니다.
설명
CMFCColorMenuButton::OnDrawOnCustomizeList
도구 모음 사용자 지정 대화 상자 목록에 개체가 표시되기 전에 CMFCColorMenuButton
프레임워크에서 호출됩니다.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
매개 변수
pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.
rect
[in] 그릴 단추를 경계로 하는 사각형입니다.
bSelected
[in] TRUE는 단추가 선택된 상태임을 지정합니다. 그렇지 않으면 FALSE입니다.
Return Value
단추의 너비입니다.
설명
이 메서드는 도구 모음 사용자 지정 프로세스 중에 개체가 목록 상자에 표시될 때 CMFCColorMenuButton
프레임워크에서 호출됩니다.
CMFCColorMenuButton::OpenColorDialog
색 선택 대화 상자를 엽니다.
virtual BOOL OpenColorDialog(
const COLORREF colorDefault,
COLORREF& colorRes);
매개 변수
colorDefault
[in] 색 대화 상자에서 선택된 기본 색입니다.
colorRes
[out] 색 대화 상자에서 사용자가 선택한 색을 반환합니다.
Return Value
사용자가 새 색을 선택하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
메뉴 단추를 클릭하면 이 메서드를 호출하여 색 대화 상자를 엽니다. 반환 값이 0이 아니면 사용자가 선택하는 색이 colorRes 매개 변수에 저장됩니다. CMFCColorMenuButton::EnableOtherButton 메서드를 사용하여 표준 색 대화 상자와 CMFCColorDialog 클래스 대화 상자 간에 전환합니다.
CMFCColorMenuButton::SetColor
현재 색 단추의 색을 설정합니다.
virtual void SetColor(
COLORREF clr,
BOOL bNotify=TRUE);
매개 변수
clr
[in] RGB 색 값입니다.
bNotify
[in] 연결된 메뉴 단추 또는 도구 모음 단추에 clr 매개 변수 색을 적용하려면 TRUE이고, 그렇지 않으면 FALSE입니다.
설명
현재 색 단추의 색을 변경하려면 이 메서드를 호출합니다. bNotify 매개 변수가 0이 아닌 경우 연결된 팝업 메뉴 또는 도구 모음의 해당 단추 색이 clr 매개 변수에 지정된 색으로 변경됩니다.
CMFCColorMenuButton::SetColorByCmdID
지정한 색 메뉴 단추의 색을 설정합니다.
static void SetColorByCmdID(
UINT uiCmdID,
COLORREF color);
매개 변수
uiCmdID
[in] 색 메뉴 단추의 리소스 ID입니다.
color
[in] RGB 색 값입니다.
CMFCColorMenuButton::SetColorName
지정된 색의 새 이름을 설정합니다.
static void SetColorName(
COLORREF color,
const CString& strName);
매개 변수
color
[in] 이름이 변경되는 색의 RGB 값입니다.
strName
[in] 색의 새 이름입니다.
설명
CMFCColorMenuButton::SetColumnsNumber
색 선택 컨트롤( CMFCColorBar 개체)에 표시할 열 수를 설정합니다.
void SetColumnsNumber(int nColumns);
매개 변수
nColumns
[in] 표시할 열 수입니다.
설명
참고 항목
계층 구조 차트
클래스
CMFCColorBar 클래스
CMFCToolBar 클래스
CMFCToolBarsCustomizeDialog 클래스
CMFCColorButton 클래스