共用方式為


CMFCColorMenuButton 類別

CMFCColorMenuButton 類別支援命令或啟動色彩選擇器對話方塊中的工具列按鈕。

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Members

公用建構函式

名稱

描述

CMFCColorMenuButton::CMFCColorMenuButton

建構 CMFCColorMenuButton 物件。

公用方法

名稱

描述

CMFCColorMenuButton::EnableAutomaticButton

啟用和停用規則色彩按鈕上的「Auto」按鈕。 (標準系統自動按鈕標記 [自動])。

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 物件。 這個程式碼是 文字填補範例的一部分。

  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;
}

繼承階層架構

CObject

   CMFCToolBarButton

      CMFCToolBarMenuButton

         CMFCColorMenuButton

需求

標題: afxcolormenubutton.h

請參閱

參考

階層架構圖表

CMFCColorBar 類別

CMFCToolBar 類別

CMFCToolBarsCustomizeDialog 類別

CMFCColorButton 類別

其他資源

MFC 類別