Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
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