CMFCColorMenuButton 클래스
CMFCColorMenuButton 클래스는 색 선택 대화 상자를 시작 하는 도구 모음 단추 또는 메뉴 명령을 지원 합니다.
class CMFCColorMenuButton : public CMFCToolBarMenuButton
Members
Public 생성자
Name |
설명 |
---|---|
CMFCColorMenuButton 개체를 생성합니다. |
Public 메서드
Name |
설명 |
---|---|
수 있으며 일반 색 단추 위에 배치 되는 "자동" 단추를 사용할 수 없습니다.(표준 시스템 자동 단추인 자동.) |
|
시스템 색 대신 문서 특정 색상을 표시할 수 있습니다. |
|
수 있으며 일반 색 단추 아래에 배치 되는 "기타" 단추를 사용할 수 없습니다.("기타" 단추는 표시 된 표준 시스템 다른 색....) |
|
색상 창을 해제 떼어낼 수가 있습니다. |
|
현재 자동 색을 검색합니다. |
|
현재 단추의 색을 검색합니다. |
|
지정 된 명령 ID에 해당 하는 색을 검색 합니다. |
|
부모 창이 변경 될 때 프레임 워크에 의해 호출 됩니다. |
|
색 선택 대화 상자가 열립니다. |
|
현재 색 단추의 색을 설정합니다. |
|
메뉴 단추는 지정 된 색상의 색을 설정합니다. |
|
지정 된 색의 새 이름을 설정합니다. |
|
표시 된 열 수를 설정 하는 CMFCColorBar 개체. |
Protected 메서드
Name |
설명 |
---|---|
현재 단추를 다른 도구 모음 단추를 복사합니다. |
|
색 선택 대화 상자를 만듭니다. |
|
빈 메뉴를 지원 하는지 여부를 나타냅니다. |
|
단추에 이미지를 표시 하는 프레임 워크에서 호출 합니다. |
|
호출 하기 전에 프레임 워크는 CMFCColorMenuButton 개체 도구 모음 사용자 지정 대화 상자의 목록에 표시 됩니다. |
설명
원래 메뉴 명령이 나 도구 모음 단추를 교체할 수는 CMFCColorMenuButton 개체, 만들기는 CMFCColorMenuButton 개체는 적절 한 설정, CMFCColorBar 클래스 스타일 및 다음 호출의 ReplaceButton 메서드는 CMFCToolBar 클래스 클래스.도구 모음을 사용자 지정 하는 경우 호출 된 CMFCToolBarsCustomizeDialog::ReplaceButton 메서드.
색 선택 대화 상자를 처리 하는 동안 만들어진는 CMFCColorMenuButton::CreatePopupMenu 이벤트 처리기입니다.이벤트 처리기는 부모 프레임으로 알립니다는 WM_COMMAND 메시지.CMFCColorMenuButton 개체가 원본 메뉴 명령이 나 도구 모음 단추에 할당 된 컨트롤 ID를 보냅니다.
예제
만들고 색 단추 메뉴에서 다양 한 방법을 사용 하 여 구성 하는 방법 다음 예제는 CMFCColorMenuButton 클래스입니다.예에서는 CPalette 개체 먼저 만들어지고 사용 되는 개체를 생성 하는 CMFCColorMenuButton 클래스.CMFCColorMenuButton 개체의 자동 및 다른 단추를 사용 하 고 색 및 열 수를 설정 하 고 구성 합니다.이 코드의 일부인의 워드 패드 샘플.
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
참고 항목
참조
CMFCToolBarsCustomizeDialog 클래스