CMFCColorMenuButton 類別
CMFCColorMenuButton 類別支援命令或啟動色彩選擇器對話方塊中的工具列按鈕。
class CMFCColorMenuButton : public CMFCToolBarMenuButton
Members
公用建構函式
名稱 |
描述 |
---|---|
建構 CMFCColorMenuButton 物件。 |
公用方法
名稱 |
描述 |
---|---|
啟用和停用規則色彩按鈕上的「Auto」按鈕。 (標準系統自動按鈕標記 [自動])。 |
|
啟用資料特定色彩顯示 (而不是系統色彩。 |
|
啟用和停用規則色彩] 按鈕下方定位「其他」按鈕。 (標準系統「其他」按鈕標記 [更多色彩…])。 |
|
以啟用未色彩窗格。 |
|
擷取目前的自動色彩。 |
|
擷取目前按鈕的色彩。 |
|
擷取對應於指定的命令 ID. 的色彩。 |
|
呼叫框架,當父視窗變更。 |
|
開啟色彩選取對話方塊。 |
|
設定目前色彩按鈕的色彩。 |
|
設定所指定的色彩功能表按鈕的色彩。 |
|
設定新名稱指定的色彩。 |
|
設定由 CMFCColorBar 物件顯示的欄數。 |
受保護的方法
名稱 |
描述 |
---|---|
複製到另一個工具列按鈕加入至目前的按鈕。 |
|
建立色彩選擇器對話方塊。 |
|
表示空的功能表是否支援。 |
|
呼叫由架構在按鈕上顯示影像。 |
|
呼叫框架,在 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;
}
繼承階層架構
需求
標題: afxcolormenubutton.h
請參閱
參考
CMFCToolBarsCustomizeDialog 類別