Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Az CMFCColorMenuButton osztály egy menüparancsot vagy egy eszköztárgombot támogat, amely elindít egy színválasztó párbeszédpanelt.
Szemantika
class CMFCColorMenuButton : public CMFCToolBarMenuButton
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CMFCColorMenuButton::CMFCColorMenuButton | Egy CMFCColorMenuButton objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CMFCColorMenuButton::EnableAutomaticButton | Engedélyezi és letiltja az "automatikus" gombot, amely a normál színgombok fölött van elhelyezve. (A normál rendszer automatikus gombja Automatikus címkével van ellátva.) |
| CMFCColorMenuButton::EnableDocumentColors | Lehetővé teszi a dokumentumspecifikus színek megjelenítését a rendszerszínek helyett. |
| CMFCColorMenuButton::EnableOtherButton | Engedélyezi és letiltja az "egyéb" gombot, amely a normál színgombok alatt helyezkedik el. (A standard rendszer "egyéb" gombja További színek címkével van ellátva.) |
| CMFCColorMenuButton::EnableTearOff | Lehetővé teszi a színpanel levágását. |
| CMFCColorMenuButton::GetAutomaticColor | Lekéri az aktuális automatikus színt. |
| CMFCColorMenuButton::GetColor | Lekéri az aktuális gomb színét. |
| CMFCColorMenuButton::GetColorByCmdID | Lekéri a megadott parancsazonosítónak megfelelő színt. |
| CMFCColorMenuButton::OnChangeParentWnd | A keretrendszer meghívja, amikor a szülőablak megváltozik. |
| CMFCColorMenuButton::OpenColorDialog | Megnyílik egy színkijelölési párbeszédpanel. |
| CMFCColorMenuButton::SetColor | Az aktuális szín gomb színét állítja be. |
| CMFCColorMenuButton::SetColorByCmdID | Beállítja a megadott színmenügomb színét. |
| CMFCColorMenuButton::SetColorName | Beállítja a megadott szín új nevét. |
| CMFCColorMenuButton::SetColumnsNumber | Beállítja az objektumok által CMFCColorBar megjelenített oszlopok számát. |
Védett metódusok
| Név | Description |
|---|---|
| CMFCColorMenuButton::CopyFrom | Másik eszköztárgomb másolása az aktuális gombra. |
| CMFCColorMenuButton::CreatePopupMenu | Létrehoz egy színválasztó párbeszédpanelt. |
| CMFCColorMenuButton::IsEmptyMenuAllowed | Azt jelzi, hogy az üres menük támogatottak-e. |
| CMFCColorMenuButton::OnDraw | A keretrendszer meghívta, hogy megjelenítsen egy képet egy gombon. |
| CMFCColorMenuButton::OnDrawOnCustomizeList | A keretrendszer meghívta, mielőtt egy CMFCColorMenuButton objektum megjelenik az eszköztár testreszabási párbeszédpaneljének listájában. |
Megjegyzések
Ha az eredeti menüparancsot vagy eszköztárgombot egy CMFCColorMenuButton objektumra szeretné cserélni, hozza létre az CMFCColorMenuButton objektumot, állítsa be a megfelelő CMFCColorBar osztálystílusokat , majd hívja meg a ReplaceButtonCMFCToolBar osztályosztály metódusát. Ha testre szab egy eszköztárat, hívja meg a CMFCToolBarsCustomizeDialog::ReplaceButton metódust.
A színválasztó párbeszédpanel a CMFCColorMenuButton::CreatePopupMenu eseménykezelő feldolgozása során jön létre. Az eseménykezelő egy WM_COMMAND üzenettel értesíti a szülőkeretet. Az CMFCColorMenuButton objektum elküldi az eredeti menüparancshoz vagy eszköztárgombhoz rendelt vezérlőazonosítót.
Example
Az alábbi példa bemutatja, hogyan hozhat létre és konfigurálhat színmenügombokat az CMFCColorMenuButton osztály különböző metódusaival. A példában először egy CPalette objektum jön létre, majd az osztály egy objektumának CMFCColorMenuButton létrehozásához használatos. Az CMFCColorMenuButton objektum ezután úgy van konfigurálva, hogy engedélyezi az automatikus és egyéb gombokat, és beállítja annak színét és az oszlopok számát. Ez a kód a Word Pad-minta része.
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;
}
Öröklési hierarchia
Requirements
Fejléc: afxcolormenubutton.h
CMFCColorMenuButton::CMFCColorMenuButton
Egy CMFCColorMenuButton objektumot hoz létre.
CMFCColorMenuButton();
CMFCColorMenuButton(
UINT uiCmdID,
LPCTSTR lpszText,
CPalette* pPalette=NULL);
Paraméterek
uiCmdID
[in] Gombparancs azonosítója.
lpszText
[in] A gomb szövege.
pPalette
[in] Mutató a gomb színpalettájára.
Visszaadott érték
Megjegyzések
Az első konstruktor az alapértelmezett konstruktor. Az objektum aktuális színe és automatikus színe feketére van inicializálva (RGB(0, 0, 0)).
A második konstruktor a gombot a megadott parancsazonosítónak megfelelő színre inicializálja.
CMFCColorMenuButton::CopyFrom
Átmásol egy CMFCToolBarMenuButton osztályból származtatott objektumot egy másikba.
virtual void CopyFrom(const CMFCToolBarButton& src);
Paraméterek
Src
[in] A másolandó forrás gomb.
Megjegyzések
Felülbírálja ezt a metódust az objektumból származtatott objektumok másolásához CMFCColorMenuButton .
CMFCColorMenuButton::CreatePopupMenu
Létrehoz egy színválasztó párbeszédpanelt.
virtual CMFCPopupMenu* CreatePopupMenu();
Visszaadott érték
Egy színválasztó párbeszédpanelt jelképező objektum.
Megjegyzések
Ezt a metódust a keretrendszer hívja meg, amikor a felhasználó lenyom egy színmenügombot.
CMFCColorMenuButton::EnableAutomaticButton
Engedélyezi és letiltja az "automatikus" gombot, amely a normál színgombok fölött van elhelyezve. (A normál rendszer automatikus gombja Automatikus címkével van ellátva.)
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
Paraméterek
lpszLabel
[in] Megadja a gomb automatikussá válásakor megjelenő gombszöveget.
colorAutomatic
[in] Új automatikus színt ad meg.
bEnable
[in] Megadja, hogy a gomb automatikus-e vagy sem.
Megjegyzések
Az automatikus gomb az aktuális alapértelmezett színt alkalmazza.
CMFCColorMenuButton::EnableDocumentColors
Lehetővé teszi a dokumentumspecifikus színek megjelenítését a rendszerszínek helyett.
void EnableDocumentColors(
LPCTSTR lpszLabel,
BOOL bEnable=TRUE);
Paraméterek
lpszLabel
[in] Megadja a gomb szövegét.
bEnable
[in] IGAZ a dokumentumspecifikus színek megjelenítéséhez, illetve HAMIS a rendszerszínek megjelenítéséhez.
Megjegyzések
Ezzel a módszerrel megjelenítheti az aktuális dokumentumszíneket vagy a rendszerpaletta színeit, amikor a felhasználó egy színmenügombra kattint.
CMFCColorMenuButton::EnableOtherButton
Engedélyezi és letiltja az "egyéb" gombot, amely a normál színgombok alatt helyezkedik el. (A standard rendszer "egyéb" gombja További színek címkével van ellátva.)
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
Paraméterek
lpszLabel
[in] Megadja a gomb szövegét.
bAltColorDlg
[in] Adja meg a TRUE (IGAZ) értéket a CMFCColorDialog párbeszédpanel megjelenítéséhez, vagy hamis értéket a normál rendszerszín párbeszédpanel megjelenítéséhez.
bEnable
[in] Adja meg a TRUE értéket az "egyéb" gomb megjelenítéséhez; egyéb esetben HAMIS. Az alapértelmezett érték IGAZ.
Megjegyzések
CMFCColorMenuButton::EnableTearOff
Lehetővé teszi a színpanel levágását.
void EnableTearOff(
UINT uiID,
int nVertDockColumns=-1,
int nHorzDockRows=-1);
Paraméterek
uiID
[in] Megadja a szakadás panel azonosítóját.
nVertDockColumns
[in] A függőlegesen rögzített színpanelen lévő oszlopok számát adja meg szakadásos állapotban.
nHorzDockRows
[in] A vízszintesen rögzített színpanel sorainak számát adja meg szakadásos állapotban.
Megjegyzések
A metódus meghívásával engedélyezheti a gomb megnyomásakor előugró CMFCColorMenuButton színpanel "szakadás" funkcióját.
CMFCColorMenuButton::GetAutomaticColor
Lekéri az aktuális automatikus színt.
COLORREF GetAutomaticColor() const;
Visszaadott érték
Az aktuális automatikus színt jelképező RGB színérték.
Megjegyzések
Hívja meg ezt a metódust a CMFCColorMenuButton::EnableAutomaticButton által beállított automatikus szín beszerzéséhez.
CMFCColorMenuButton::GetColor
Lekéri az aktuális gomb színét.
COLORREF GetColor() const;
Visszaadott érték
A gomb színe.
Megjegyzések
CMFCColorMenuButton::GetColorByCmdID
Lekéri a megadott parancsazonosítónak megfelelő színt.
static COLORREF GetColorByCmdID(UINT uiCmdID);
Paraméterek
uiCmdID
[in] Parancsazonosító.
Visszaadott érték
A megadott parancsazonosítónak megfelelő szín.
Megjegyzések
Ezt a módszert akkor használja, ha egy alkalmazásban több színgomb is található. Amikor a felhasználó egy színgombra kattint, a gomb egy WM_COMMAND üzenetben elküldi a parancsazonosítóját a szülőjének. A GetColorByCmdID metódus a parancsazonosítóval kéri le a megfelelő színt.
CMFCColorMenuButton::IsEmptyMenuAllowed
Azt jelzi, hogy az üres menük támogatottak-e.
virtual BOOL IsEmptyMenuAllowed() const;
Visszaadott érték
Nemzero, ha üres menük engedélyezettek; ellenkező esetben nulla.
Megjegyzések
Az üres menük alapértelmezés szerint támogatottak. Ezt a metódust felülbírálva módosíthatja ezt a viselkedést a származtatott osztályban.
CMFCColorMenuButton::OnChangeParentWnd
A keretrendszer meghívja, amikor a szülőablak megváltozik.
virtual void OnChangeParentWnd(CWnd* pWndParent);
Paraméterek
pWndParent
[in] Mutató az új szülőablakra.
Megjegyzések
CMFCColorMenuButton::OnDraw
A keretrendszer meghívta, hogy megjelenítsen egy képet egy gombon.
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);
Paraméterek
Pdc
[in] Egy eszközkörnyezetre mutató mutató.
téglalap
[in] Egy téglalap, amely az újrarajzolt területet határolja.
pImages
[in] Az eszköztárképek listájára mutat.
bHorz
[in] IGAZ érték annak megadásához, hogy az eszköztár vízszintesen rögzített állapotban van- e; egyéb esetben HAMIS. Az alapértelmezett érték IGAZ.
bCustomizeMode
[in] IGAZ érték annak megadásához, hogy az alkalmazás testreszabási módban van-e; egyéb esetben HAMIS. Az alapértelmezett HAMIS.
bHighlight
[in] IGAZ érték annak megadásához, hogy a gomb ki van emelve; egyéb esetben HAMIS. Az alapértelmezett HAMIS.
bDrawBorder
[in] IGAZ érték a gomb szegélyének megjelenítéséhez; egyéb esetben HAMIS. Az alapértelmezett érték IGAZ.
bGrayDisabledButtons
[in] IGAZ érték annak megadásához, hogy a letiltott gombok szürkén (halványítva) legyenek; egyéb esetben HAMIS. Az alapértelmezett érték IGAZ.
Megjegyzések
CMFCColorMenuButton::OnDrawOnCustomizeList
A keretrendszer meghívta, mielőtt egy CMFCColorMenuButton objektum megjelenik az eszköztár testreszabási párbeszédpaneljének listájában.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
Paraméterek
Pdc
[in] Egy eszközkörnyezetre mutató mutató.
téglalap
[in] Egy téglalap, amely a megrajzolandó gombot határolja.
b Kijelölve
[in] A TRUE azt adja meg, hogy a gomb kijelölt állapotban van- e; egyéb esetben HAMIS.
Visszaadott érték
A gomb szélessége.
Megjegyzések
Ezt a metódust a keretrendszer hívja meg, amikor egy CMFCColorMenuButton objektum megjelenik a listamezőben az eszköztár testreszabási folyamata során.
CMFCColorMenuButton::OpenColorDialog
Megnyílik egy színkijelölési párbeszédpanel.
virtual BOOL OpenColorDialog(
const COLORREF colorDefault,
COLORREF& colorRes);
Paraméterek
colorDefault
[in] A szín párbeszédpanelen kijelölt alapértelmezett szín.
colorRes
[kifelé] A felhasználó által a szín párbeszédpanelen kiválasztott színt adja vissza.
Visszaadott érték
Nonzero, ha a felhasználó új színt választ; ellenkező esetben nulla.
Megjegyzések
Amikor a menügombra kattint, hívja meg ezt a metódust egy szín párbeszédpanel megnyitásához. Ha a visszatérési érték nem nulla, a felhasználó által kiválasztott szín a colorRes paraméterben lesz tárolva. A CMFCColorMenuButton::EnableOtherButton metódus használatával válthat a szabványos szín párbeszédpanel és a CMFCColorDialog Osztály párbeszédpanel között.
CMFCColorMenuButton::SetColor
Az aktuális szín gomb színét állítja be.
virtual void SetColor(
COLORREF clr,
BOOL bNotify=TRUE);
Paraméterek
Clr
[in] RGB-színérték.
bNotify
[in] IGAZ, ha a clr paraméter színét bármely társított menügombra vagy eszköztárgombra alkalmazza; egyéb esetben HAMIS.
Megjegyzések
Az aktuális szín gomb színének módosításához hívja meg ezt a metódust. Ha a bNotify paraméter nem nulla, a kapcsolódó előugró menü vagy eszköztár megfelelő gombjának színe a clr paraméter által megadott színre változik.
CMFCColorMenuButton::SetColorByCmdID
Beállítja a megadott színmenügomb színét.
static void SetColorByCmdID(
UINT uiCmdID,
COLORREF color);
Paraméterek
uiCmdID
[in] Egy színmenü gomb erőforrás-azonosítója.
color
[in] RGB-színérték.
CMFCColorMenuButton::SetColorName
Beállítja a megadott szín új nevét.
static void SetColorName(
COLORREF color,
const CString& strName);
Paraméterek
color
[in] Annak a színnek az RGB-értéke, amelynek a neve megváltozik.
strName
[in] A szín új neve.
Megjegyzések
CMFCColorMenuButton::SetColumnsNumber
Beállítja a színkijelölési vezérlőben megjelenítendő oszlopok számát ( CMFCColorBar objektum).
void SetColumnsNumber(int nColumns);
Paraméterek
nColumns
[in] A megjelenítendő oszlopok száma.
Megjegyzések
Lásd még
hierarchiadiagram
osztályok
CMFCColorBar osztály
CMFCToolBar osztály
CMFCToolBarsCustomizeDialog osztály
CMFCColorButton osztály