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

Członkowie

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

Cobject

Cmfctoolbarbutton

Cmfctoolbarmenubutton

Cmfccolormenubutton

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 czarny (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

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