Share via


Klasse CMFCColorMenuButton

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

De CMFCColorMenuButton klasse ondersteunt een menuopdracht of een werkbalkknop waarmee een dialoogvenster kleurkiezer wordt gestart.

Syntaxis

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Leden

Openbare constructors

Naam Description
CMFCColorMenuButton::CMFCColorMenuButton Maakt een CMFCColorMenuButton object.

Openbare methoden

Naam Description
CMFCColorMenuButton::EnableAutomaticButton Hiermee schakelt u een 'automatische' knop in en uit die boven de normale kleurknoppen wordt weergegeven. (De standaardknop automatisch systeem heeft het label Automatisch.)
CMFCColorMenuButton::EnableDocumentColors Hiermee kunt u documentspecifieke kleuren weergeven in plaats van systeemkleuren.
CMFCColorMenuButton::EnableOtherButton Hiermee schakelt u een 'andere' knop in en uit die onder de normale kleurknoppen wordt weergegeven. (De standaardsysteemknop 'overige' heeft het label Meer kleuren.)
CMFCColorMenuButton::EnableTearOff Hiermee kunt u een kleurenvenster verwijderen.
CMFCColorMenuButton::GetAutomaticColor Hiermee haalt u de huidige automatische kleur op.
CMFCColorMenuButton::GetColor Hiermee wordt de kleur van de huidige knop opgehaald.
CMFCColorMenuButton::GetColorByCmdID Haalt de kleur op die overeenkomt met een opgegeven opdracht-id.
CMFCColorMenuButton::OnChangeParentWnd Aangeroepen door het framework wanneer het bovenliggende venster wordt gewijzigd.
CMFCColorMenuButton::OpenColorDialog Hiermee opent u een dialoogvenster voor kleurselectie.
CMFCColorMenuButton::SetColor Hiermee stelt u de kleur van de huidige kleurknop in.
CMFCColorMenuButton::SetColorByCmdID Hiermee stelt u de kleur van de opgegeven knop kleurmenu in.
CMFCColorMenuButton::SetColorName Hiermee stelt u een nieuwe naam in voor de opgegeven kleur.
CMFCColorMenuButton::SetColumnsNumber Hiermee stelt u het aantal kolommen in dat door een CMFCColorBar object wordt weergegeven.

Beveiligde methoden

Naam Description
CMFCColorMenuButton::CopyFrom Kopieert een andere werkbalkknop naar de huidige knop.
CMFCColorMenuButton::CreatePopupMenu Hiermee maakt u een dialoogvenster kleurkiezer.
CMFCColorMenuButton::IsEmptyMenuAllowed Geeft aan of lege menu's worden ondersteund.
CMFCColorMenuButton::OnDraw Aangeroepen door het framework om een afbeelding weer te geven op een knop.
CMFCColorMenuButton::OnDrawOnCustomizeList Aangeroepen door het framework voordat een CMFCColorMenuButton object wordt weergegeven in de lijst van een dialoogvenster voor het aanpassen van een werkbalk.

Opmerkingen

Als u de oorspronkelijke menuopdracht of werkbalkknop wilt vervangen door een CMFCColorMenuButton object, maakt u het CMFCColorMenuButton object, stelt u de juiste CMFCColorBar-klassestijlen in en roept u de ReplaceButton methode van de klasse CMFCToolBar Class aan. Als u een werkbalk aanpast, roept u de methode CMFCToolBarsCustomizeDialog::ReplaceButton aan.

Het dialoogvenster kleurkiezer wordt gemaakt tijdens de verwerking van de gebeurtenis-handler CMFCColorMenuButton::CreatePopupMenu . De gebeurtenis-handler meldt het bovenliggende frame met een WM_COMMAND bericht. Het CMFCColorMenuButton object verzendt de besturings-id die is toegewezen aan de oorspronkelijke menuopdracht of werkbalkknop.

Example

In het volgende voorbeeld ziet u hoe u een knop voor het kleurenmenu maakt en configureert met behulp van verschillende methoden in de CMFCColorMenuButton klasse. In het voorbeeld wordt eerst een CPalette object gemaakt en vervolgens gebruikt om een object van de CMFCColorMenuButton klasse te maken. Het CMFCColorMenuButton object wordt vervolgens geconfigureerd door de automatische en andere knoppen in te schakelen en de kleur en het aantal kolommen in te stellen. Deze code maakt deel uit van het Word Pad-voorbeeld.

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

Overnamehiërarchie

CObject

CMFCToolBarButton

CMFCToolBarMenuButton

CMFCColorMenuButton

Requirements

Koptekst: afxcolormenubutton.h

CMFCColorMenuButton::CMFCColorMenuButton

Maakt een CMFCColorMenuButton object.

CMFCColorMenuButton();

CMFCColorMenuButton(
    UINT uiCmdID,
    LPCTSTR lpszText,
    CPalette* pPalette=NULL);

Parameterwaarden

uiCmdID
[in] Een knopopdracht-id.

lpszText
[in] De knoptekst.

pPalette
[in] Een aanwijzer naar het kleurenpalet van de knop.

Retourwaarde

Opmerkingen

De eerste constructor is de standaardconstructor. De huidige kleur en automatische kleur van het object worden geïnitialiseerd op zwart (RGB(0, 0, 0)).

De tweede constructor initialiseert de knop met de kleur die overeenkomt met de opgegeven opdracht-id.

CMFCColorMenuButton::CopyFrom

Hiermee kopieert u een CMFCToolBarMenuButton Class-afgeleide object naar een ander object.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parameterwaarden

Src
[in] De knop Bron om te kopiëren.

Opmerkingen

Overschrijf deze methode om objecten te kopiëren die zijn afgeleid van het CMFCColorMenuButton object.

CMFCColorMenuButton::CreatePopupMenu

Hiermee maakt u een dialoogvenster kleurkiezer.

virtual CMFCPopupMenu* CreatePopupMenu();

Retourwaarde

Een object dat een dialoogvenster kleurkiezer vertegenwoordigt.

Opmerkingen

Deze methode wordt aangeroepen door het framework wanneer de gebruiker op een knop kleurmenu drukt.

CMFCColorMenuButton::EnableAutomaticButton

Hiermee schakelt u een 'automatische' knop in en uit die boven de normale kleurknoppen wordt weergegeven. (De standaardknop automatisch systeem heeft het label Automatisch.)

void EnableAutomaticButton(
    LPCTSTR lpszLabel,
    COLORREF colorAutomatic,
    BOOL bEnable=TRUE);

Parameterwaarden

lpszLabel
[in] Hiermee geeft u de knoptekst op die wordt weergegeven wanneer de knop automatisch wordt.

colorAutomatic
[in] Hiermee geeft u een nieuwe automatische kleur.

bEnable
[in] Hiermee geeft u op of de knop automatisch is of niet.

Opmerkingen

Met de automatische knop wordt de huidige standaardkleur toegepast.

CMFCColorMenuButton::EnableDocumentColors

Hiermee kunt u documentspecifieke kleuren weergeven in plaats van systeemkleuren.

void EnableDocumentColors(
    LPCTSTR lpszLabel,
    BOOL bEnable=TRUE);

Parameterwaarden

lpszLabel
[in] Hiermee geeft u de knoptekst.

bEnable
[in] TRUE om documentspecifieke kleuren weer te geven of ONWAAR om systeemkleuren weer te geven.

Opmerkingen

Gebruik deze methode om de huidige documentkleuren of de kleuren van het systeempalet weer te geven wanneer de gebruiker op een knop kleurmenu klikt.

CMFCColorMenuButton::EnableOtherButton

Hiermee schakelt u een 'andere' knop in en uit die onder de normale kleurknoppen wordt weergegeven. (De standaardsysteemknop 'overige' heeft het label Meer kleuren.)

void EnableOtherButton(
    LPCTSTR lpszLabel,
    BOOL bAltColorDlg=TRUE,
    BOOL bEnable=TRUE);

Parameterwaarden

lpszLabel
[in] Hiermee geeft u de knoptekst.

bAltColorDlg
[in] Geef TRUE op om het CMFCColorDialog dialoogvenster weer te geven of FALSE om het standaarddialoogvenster met systeemkleur weer te geven.

bEnable
[in] Geef TRUE op om de knop 'other' weer te geven; anders, ONWAAR. De standaardwaarde is WAAR.

Opmerkingen

CMFCColorMenuButton::EnableTearOff

Hiermee kunt u een kleurenvenster verwijderen.

void EnableTearOff(
    UINT uiID,
    int nVertDockColumns=-1,
    int nHorzDockRows=-1);

Parameterwaarden

uiID
[in] Hiermee geeft u de id voor het deelvenster scheuren.

nVertDockColumns
[in] Hiermee geeft u het aantal kolommen in het verticaal gedokte kleurvenster op terwijl de status Van scheuren is uitgeschakeld.

nHorzDockRows
[in] Hiermee geeft u het aantal rijen op voor het horizontaal gedokte kleurenvenster terwijl de status Van scheuren is bereikt.

Opmerkingen

Roep deze methode aan om de functie 'scheuren' in te schakelen voor het kleurenvenster dat verschijnt wanneer de CMFCColorMenuButton knop wordt ingedrukt.

CMFCColorMenuButton::GetAutomaticColor

Hiermee haalt u de huidige automatische kleur op.

COLORREF GetAutomaticColor() const;

Retourwaarde

Een RGB-kleurwaarde die de huidige automatische kleur vertegenwoordigt.

Opmerkingen

Roep deze methode aan om de automatische kleur te verkrijgen die is ingesteld door CMFCColorMenuButton::EnableAutomaticButton.

CMFCColorMenuButton::GetColor

Hiermee wordt de kleur van de huidige knop opgehaald.

COLORREF GetColor() const;

Retourwaarde

De kleur van de knop.

Opmerkingen

CMFCColorMenuButton::GetColorByCmdID

Haalt de kleur op die overeenkomt met een opgegeven opdracht-id.

static COLORREF GetColorByCmdID(UINT uiCmdID);

Parameterwaarden

uiCmdID
[in] Een opdracht-id.

Retourwaarde

De kleur die overeenkomt met de opgegeven opdracht-id.

Opmerkingen

Gebruik deze methode wanneer u verschillende kleurknoppen in een toepassing hebt. Wanneer de gebruiker op een kleurknop klikt, verzendt de knop de opdracht-id in een WM_COMMAND bericht naar het bovenliggende item. De GetColorByCmdID methode gebruikt de opdracht-id om de bijbehorende kleur op te halen.

CMFCColorMenuButton::IsEmptyMenuAllowed

Geeft aan of lege menu's worden ondersteund.

virtual BOOL IsEmptyMenuAllowed() const;

Retourwaarde

Niet-nul als lege menu's zijn toegestaan; anders, nul.

Opmerkingen

Lege menu's worden standaard ondersteund. Overschrijf deze methode om dit gedrag in afgeleide klasse te wijzigen.

CMFCColorMenuButton::OnChangeParentWnd

Aangeroepen door het framework wanneer het bovenliggende venster wordt gewijzigd.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parameterwaarden

pWndParent
[in] Een aanwijzer naar het nieuwe bovenliggende venster.

Opmerkingen

CMFCColorMenuButton::OnDraw

Aangeroepen door het framework om een afbeelding weer te geven op een knop.

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

Parameterwaarden

Pdc
[in] Een aanwijzer naar een apparaatcontext.

Rect
[in] Een rechthoek die het gebied begrenst dat opnieuw moet worden getekend.

pImages
[in] Verwijst naar een lijst met werkbalkafbeeldingen.

bHorz
[in] WAAR om op te geven dat de werkbalk zich in een horizontale gedokte status bevindt; anders, ONWAAR. De standaardwaarde is WAAR.

bCustomizeMode
[in] WAAR om op te geven dat de toepassing zich in de aanpassingsmodus bevindt; anders, ONWAAR. De standaard is FOUT.

bHighlight
[in] WAAR om op te geven dat de knop is gemarkeerd; anders, ONWAAR. De standaard is FOUT.

bDrawBorder
[in] WAAR om op te geven dat de rand van de knop wordt weergegeven; anders, ONWAAR. De standaardwaarde is WAAR.

bGrayDisabledButtons
[in] WAAR om aan te geven dat uitgeschakelde knoppen grijs (lichter gekleurd) zijn; anders, ONWAAR. De standaardwaarde is WAAR.

Opmerkingen

CMFCColorMenuButton::OnDrawOnCustomizeList

Aangeroepen door het framework voordat een CMFCColorMenuButton object wordt weergegeven in de lijst van een dialoogvenster voor het aanpassen van een werkbalk.

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

Parameterwaarden

Pdc
[in] Een aanwijzer naar een apparaatcontext.

Rect
[in] Een rechthoek die de knop begrenst die moet worden getekend.

bSelected
[in] TRUE geeft aan dat de knop de geselecteerde status heeft; anders, ONWAAR.

Retourwaarde

De breedte van de knop.

Opmerkingen

Deze methode wordt aangeroepen door het framework wanneer een CMFCColorMenuButton object wordt weergegeven in de keuzelijst tijdens het aanpassingsproces van de werkbalk.

CMFCColorMenuButton::OpenColorDialog

Hiermee opent u een dialoogvenster voor kleurselectie.

virtual BOOL OpenColorDialog(
    const COLORREF colorDefault,
    COLORREF& colorRes);

Parameterwaarden

colorDefault
[in] De standaardkleur die is geselecteerd in het dialoogvenster Kleur.

colorRes
[uit] Retourneert de kleur die de gebruiker selecteert in het dialoogvenster Kleur.

Retourwaarde

Niet-nul als de gebruiker een nieuwe kleur selecteert; anders, nul.

Opmerkingen

Wanneer op de menuknop wordt geklikt, roept u deze methode aan om een kleurendialoogvenster te openen. Als de retourwaarde niet nul is, wordt de kleur die de gebruiker selecteert, opgeslagen in de parameter colorRes . Gebruik de methode CMFCColorMenuButton::EnableOtherButton om te schakelen tussen het standaarddialoogvenster en het dialoogvenster CMFCColorDialog Class .

CMFCColorMenuButton::SetColor

Hiermee stelt u de kleur van de huidige kleurknop in.

virtual void SetColor(
    COLORREF clr,
    BOOL bNotify=TRUE);

Parameterwaarden

Clr
[in] Een RGB-kleurwaarde.

bNotify
[in] TRUE om de kleur van de clr-parameter toe te passen op een gekoppelde menuknop of werkbalkknop; anders, ONWAAR.

Opmerkingen

Roep deze methode aan om de kleur van de huidige kleurknop te wijzigen. Als de parameter bNotify niet-nul is, wordt de kleur van de bijbehorende knop in een gekoppeld pop-upmenu of werkbalk gewijzigd in de kleur die is opgegeven door de clr-parameter .

CMFCColorMenuButton::SetColorByCmdID

Hiermee stelt u de kleur van de opgegeven knop kleurmenu in.

static void SetColorByCmdID(
    UINT uiCmdID,
    COLORREF color);

Parameterwaarden

uiCmdID
[in] De resource-id van een menuknop Kleur.

kleur
[in] Een RGB-kleurwaarde.

CMFCColorMenuButton::SetColorName

Hiermee stelt u een nieuwe naam in voor de opgegeven kleur.

static void SetColorName(
    COLORREF color,
    const CString& strName);

Parameterwaarden

kleur
[in] De RGB-waarde van de kleur waarvan de naam verandert.

strName
[in] De nieuwe naam van de kleur.

Opmerkingen

CMFCColorMenuButton::SetColumnsNumber

Hiermee stelt u het aantal kolommen in dat moet worden weergegeven in een besturingselement voor kleurenselectie ( CMFCColorBar-object ).

void SetColumnsNumber(int nColumns);

Parameterwaarden

nColumns
[in] Het aantal kolommen dat moet worden weergegeven.

Opmerkingen

Zie ook

Hiërarchiegrafiek
Klassen
CMFCColorBar-klasse
CMFCToolBar-klasse
Klasse CMFCToolBarsCustomizeDialog
CMFCColorButton-klasse