Klasa CMFCColorMenuButton
Klasa CMFCColorMenuButton
obsługuje polecenie menu lub przycisk paska narzędzi, który uruchamia okno dialogowe selektora kolorów.
Składnia
class CMFCColorMenuButton : public CMFCToolBarMenuButton
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CMFCColorMenuButton::CMFCColorMenuButton | CMFCColorMenuButton Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CMFCColorMenuButton::EnableAutomaticButton | Włącza i wyłącza przycisk "automatyczny", który znajduje się powyżej zwykłych przycisków kolorów. (Standardowy przycisk automatyczny systemu jest oznaczony etykietą Automatyczne.) |
CMFCColorMenuButton::EnableDocumentColors | Włącza wyświetlanie kolorów specyficznych dla dokumentu zamiast kolorów systemowych. |
CMFCColorMenuButton::EnableOtherButton | Włącza i wyłącza przycisk "inny" umieszczony poniżej zwykłych przycisków kolorów. (Standardowy przycisk "inny" system jest oznaczony etykietą Więcej kolorów). |
CMFCColorMenuButton::EnableTearOff | Umożliwia odcięcie okienka kolorów. |
CMFCColorMenuButton::GetAutomaticColor | Pobiera bieżący kolor automatyczny. |
CMFCColorMenuButton::GetColor | Pobiera kolor bieżącego przycisku. |
CMFCColorMenuButton::GetColorByCmdID | Pobiera kolor odpowiadający określonemu identyfikatorowi polecenia. |
CMFCColorMenuButton::OnChangeParentWnd | Wywoływana przez platformę po zmianie okna nadrzędnego. |
CMFCColorMenuButton::OpenColorDialog | Otwiera okno dialogowe wyboru kolorów. |
CMFCColorMenuButton::SetColor | Ustawia kolor bieżącego przycisku koloru. |
CMFCColorMenuButton::SetColorByCmdID | Ustawia kolor określonego przycisku menu kolorów. |
CMFCColorMenuButton::SetColorName | Ustawia nową nazwę dla określonego koloru. |
CMFCColorMenuButton::SetColumnsNumber | Ustawia liczbę kolumn wyświetlanych przez CMFCColorBar obiekt. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
CMFCColorMenuButton::CopyFrom | Kopiuje kolejny przycisk paska narzędzi do bieżącego przycisku. |
CMFCColorMenuButton::CreatePopupMenu | Tworzy okno dialogowe selektora kolorów. |
CMFCColorMenuButton::IsEmptyMenuAllowed | Wskazuje, czy obsługiwane są puste menu. |
CMFCColorMenuButton::OnDraw | Wywoływana przez platformę w celu wyświetlenia obrazu na przycisku. |
CMFCColorMenuButton::OnDrawOnCustomizeList | Wywoływana przez platformę przed wyświetleniem CMFCColorMenuButton obiektu na liście okna dialogowego dostosowywania paska narzędzi. |
Uwagi
Aby zastąpić oryginalne polecenie menu lub przycisk paska narzędzi obiektemCMFCColorMenuButton
, utwórz CMFCColorMenuButton
obiekt, ustaw odpowiednie style klasy CMFCColorBar, a następnie wywołaj ReplaceButton
metodę klasy KLASY CMFCToolBar. Jeśli dostosujesz pasek narzędzi, wywołaj metodę CMFCToolBarsCustomizeDialog::ReplaceButton .
Okno dialogowe selektora kolorów jest tworzone podczas przetwarzania programu obsługi zdarzeń CMFCColorMenuButton::CreatePopupMenu . Program obsługi zdarzeń powiadamia ramkę nadrzędną z komunikatem WM_COMMAND. Obiekt CMFCColorMenuButton
wysyła identyfikator kontrolki przypisany do oryginalnego polecenia menu lub przycisku paska narzędzi.
Przykład
W poniższym przykładzie pokazano, jak utworzyć i skonfigurować przycisk menu kolorów przy użyciu różnych metod w CMFCColorMenuButton
klasie. W tym przykładzie obiekt jest najpierw tworzony, CPalette
a następnie używany do konstruowania obiektu CMFCColorMenuButton
klasy. Następnie CMFCColorMenuButton
obiekt jest konfigurowany przez włączenie jego automatycznych i innych przycisków oraz ustawienie koloru i liczby kolumn. Ten kod jest częścią przykładu programu 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;
}
Hierarchia dziedziczenia
Wymagania
Nagłówek: afxcolormenubutton.h
CMFCColorMenuButton::CMFCColorMenuButton
CMFCColorMenuButton
Tworzy obiekt.
CMFCColorMenuButton();
CMFCColorMenuButton(
UINT uiCmdID,
LPCTSTR lpszText,
CPalette* pPalette=NULL);
Parametry
uiCmdID
[in] Identyfikator polecenia przycisku.
lpszText
[in] Tekst przycisku.
pPalette
[in] Wskaźnik do palety kolorów przycisku.
Wartość zwracana
Uwagi
Pierwszy konstruktor jest konstruktorem domyślnym. Bieżący kolor obiektu i automatyczny kolor są inicjowane na (RGB(0, 0, 0)).
Drugi konstruktor inicjuje przycisk do koloru odpowiadającego określonemu identyfikatorowi polecenia.
CMFCColorMenuButton::CopyFrom
Kopiuje jeden obiekt pochodny klasy CMFCToolBarMenuButton do innego.
virtual void CopyFrom(const CMFCToolBarButton& src);
Parametry
Src
[in] Przycisk Źródło do skopiowania.
Uwagi
Zastąp tę metodę, aby skopiować obiekty pochodzące z CMFCColorMenuButton
obiektu.
CMFCColorMenuButton::CreatePopupMenu
Tworzy okno dialogowe selektora kolorów.
virtual CMFCPopupMenu* CreatePopupMenu();
Wartość zwracana
Obiekt reprezentujący okno dialogowe selektora kolorów.
Uwagi
Ta metoda jest wywoływana przez platformę, gdy użytkownik naciska przycisk menu kolorów.
CMFCColorMenuButton::EnableAutomaticButton
Włącza i wyłącza przycisk "automatyczny", który znajduje się powyżej zwykłych przycisków kolorów. (Standardowy przycisk automatyczny systemu jest oznaczony etykietą Automatyczne.)
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[in] Określa tekst przycisku, który jest wyświetlany, gdy przycisk staje się automatyczny.
colorAutomatic
[in] Określa nowy automatyczny kolor.
bEnable
[in] Określa, czy przycisk jest automatyczny, czy nie.
Uwagi
Przycisk automatyczny stosuje bieżący kolor domyślny.
CMFCColorMenuButton::EnableDocumentColors
Włącza wyświetlanie kolorów specyficznych dla dokumentu zamiast kolorów systemowych.
void EnableDocumentColors(
LPCTSTR lpszLabel,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[in] Określa tekst przycisku.
bEnable
[in] Wartość TRUE do wyświetlania kolorów specyficznych dla dokumentu lub FALSE w celu wyświetlania kolorów systemowych.
Uwagi
Użyj tej metody, aby wyświetlić bieżące kolory dokumentu lub kolory palety systemowej, gdy użytkownik kliknie przycisk menu kolorów.
CMFCColorMenuButton::EnableOtherButton
Włącza i wyłącza przycisk "inny" umieszczony poniżej zwykłych przycisków kolorów. (Standardowy przycisk "inny" system jest oznaczony etykietą Więcej kolorów).
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[in] Określa tekst przycisku.
bAltColorDlg
[in] Określ wartość TRUE, aby wyświetlić CMFCColorDialog
okno dialogowe lub wartość FALSE, aby wyświetlić standardowe okno dialogowe koloru systemu.
bEnable
[in] Określ wartość TRUE, aby wyświetlić przycisk "inny"; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
Uwagi
CMFCColorMenuButton::EnableTearOff
Umożliwia odcięcie okienka kolorów.
void EnableTearOff(
UINT uiID,
int nVertDockColumns=-1,
int nHorzDockRows=-1);
Parametry
identyfikator uiID
[in] Określa identyfikator okienka odrętywania.
nVertDockColumns
[in] Określa liczbę kolumn w pionowo zadokowany okienku kolorów w stanie odrywania.
nHorzDockRows
[in] Określa liczbę wierszy dla okienka kolorów zadokowanego poziomo w stanie odrywania.
Uwagi
Wywołaj tę metodę, aby włączyć funkcję "odrywania" dla okienka kolorów, które jest wyświetlane po naciśnięciu CMFCColorMenuButton
przycisku.
CMFCColorMenuButton::GetAutomaticColor
Pobiera bieżący kolor automatyczny.
COLORREF GetAutomaticColor() const;
Wartość zwracana
Wartość koloru RGB reprezentująca bieżący kolor automatyczny.
Uwagi
Wywołaj tę metodę, aby uzyskać automatyczny kolor ustawiony przez cmFCColorMenuButton::EnableAutomaticButton.
CMFCColorMenuButton::GetColor
Pobiera kolor bieżącego przycisku.
COLORREF GetColor() const;
Wartość zwracana
Kolor przycisku.
Uwagi
CMFCColorMenuButton::GetColorByCmdID
Pobiera kolor odpowiadający określonemu identyfikatorowi polecenia.
static COLORREF GetColorByCmdID(UINT uiCmdID);
Parametry
uiCmdID
[in] Identyfikator polecenia.
Wartość zwracana
Kolor odpowiadający określonemu identyfikatorowi polecenia.
Uwagi
Użyj tej metody, jeśli masz kilka przycisków kolorów w aplikacji. Gdy użytkownik kliknie przycisk koloru, przycisk wysyła identyfikator polecenia w komunikacie WM_COMMAND do elementu nadrzędnego. Metoda GetColorByCmdID
używa identyfikatora polecenia, aby pobrać odpowiedni kolor.
CMFCColorMenuButton::IsEmptyMenuAllowed
Wskazuje, czy obsługiwane są puste menu.
virtual BOOL IsEmptyMenuAllowed() const;
Wartość zwracana
Niezerowe, jeśli puste menu są dozwolone; w przeciwnym razie zero.
Uwagi
Puste menu są domyślnie obsługiwane. Zastąp tę metodę, aby zmienić to zachowanie w klasie pochodnej.
CMFCColorMenuButton::OnChangeParentWnd
Wywoływana przez platformę po zmianie okna nadrzędnego.
virtual void OnChangeParentWnd(CWnd* pWndParent);
Parametry
pWndParent
[in] Wskaźnik do nowego okna nadrzędnego.
Uwagi
CMFCColorMenuButton::OnDraw
Wywoływana przez platformę w celu wyświetlenia obrazu na przycisku.
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);
Parametry
PDC
[in] Wskaźnik do kontekstu urządzenia.
Rect
[in] Prostokąt, który powiązał obszar do ponownego wyrysowania.
pImages
[in] Wskazuje listę obrazów pasków narzędzi.
bHorz
[in] WARTOŚĆ TRUE określająca, że pasek narzędzi jest w stanie zadokowania poziomego; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
bCustomizeMode
[in] WARTOŚĆ TRUE określająca, że aplikacja jest w trybie dostosowywania; w przeciwnym razie, FAŁSZ. Wartość domyślna to FALSE.
bHighlight
[in] WARTOŚĆ TRUE określająca, że przycisk jest wyróżniony; w przeciwnym razie, FAŁSZ. Wartość domyślna to FALSE.
bDrawBorder
[in] WARTOŚĆ TRUE, aby określić, że zostanie wyświetlone obramowanie przycisku; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
bGrayDisabledButtons
[in] PRAWDA, aby określić, że wyłączone przyciski są wyszarzone (wygaszone) obecnie; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
Uwagi
CMFCColorMenuButton::OnDrawOnCustomizeList
Wywoływana przez platformę przed wyświetleniem CMFCColorMenuButton
obiektu na liście okna dialogowego dostosowywania paska narzędzi.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
Parametry
PDC
[in] Wskaźnik do kontekstu urządzenia.
Rect
[in] Prostokąt, który łączy przycisk do narysowania.
bSelected
[in] Wartość TRUE określa, że przycisk jest w wybranym stanie; w przeciwnym razie, FAŁSZ.
Wartość zwracana
Szerokość przycisku.
Uwagi
Ta metoda jest wywoływana przez platformę CMFCColorMenuButton
, gdy obiekt jest wyświetlany w polu listy podczas procesu dostosowywania paska narzędzi.
CMFCColorMenuButton::OpenColorDialog
Otwiera okno dialogowe wyboru kolorów.
virtual BOOL OpenColorDialog(
const COLORREF colorDefault,
COLORREF& colorRes);
Parametry
colorDefault
[in] Domyślny kolor wybrany w oknie dialogowym kolor.
colorRes
[out] Zwraca kolor wybierany przez użytkownika w oknie dialogowym koloru.
Wartość zwracana
Niezerowe, jeśli użytkownik wybierze nowy kolor; w przeciwnym razie zero.
Uwagi
Po kliknięciu przycisku menu wywołaj tę metodę, aby otworzyć okno dialogowe koloru. Jeśli wartość zwracana jest niezerowa, kolor wybrany przez użytkownika jest przechowywany w parametrze colorRes . Użyj metody CMFCColorMenuButton::EnableOtherButton, aby przełączyć się między standardowymi oknami dialogowymi a okno dialogowe Klasa CMFCColorDialog.
CMFCColorMenuButton::SetColor
Ustawia kolor bieżącego przycisku koloru.
virtual void SetColor(
COLORREF clr,
BOOL bNotify=TRUE);
Parametry
Clr
[in] Wartość koloru RGB.
bNotify
[in] TRUE, aby zastosować kolor parametru clr do dowolnego skojarzonego przycisku menu lub przycisku paska narzędzi; w przeciwnym razie FALSE.
Uwagi
Wywołaj tę metodę, aby zmienić kolor bieżącego przycisku koloru. Jeśli parametr bNotify jest inny niżzer, kolor odpowiedniego przycisku w dowolnym skojarzonym menu podręcznym lub pasku narzędzi zostanie zmieniony na kolor określony przez parametr clr.
CMFCColorMenuButton::SetColorByCmdID
Ustawia kolor określonego przycisku menu kolorów.
static void SetColorByCmdID(
UINT uiCmdID,
COLORREF color);
Parametry
uiCmdID
[in] Identyfikator zasobu przycisku menu kolorów.
Kolor
[in] Wartość koloru RGB.
CMFCColorMenuButton::SetColorName
Ustawia nową nazwę dla określonego koloru.
static void SetColorName(
COLORREF color,
const CString& strName);
Parametry
Kolor
[in] Wartość RGB koloru, którego nazwa zmienia się.
strName
[in] Nowa nazwa koloru.
Uwagi
CMFCColorMenuButton::SetColumnsNumber
Ustawia liczbę kolumn do wyświetlenia w kontrolce wyboru kolorów ( obiekt CMFCColorBar ).
void SetColumnsNumber(int nColumns);
Parametry
nKolumny
[in] Liczba kolumn do wyświetlenia.
Uwagi
Zobacz też
Wykres hierarchii
Klasy
Klasa CMFCColorBar
Klasa CMFCToolBar
Klasa CMFCToolBarsCustomizeDialog
Klasa CMFCColorButton