CMFCColorMenuButton osztály

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

CObject

CMFCToolBarButton

CMFCToolBarMenuButton

CMFCColorMenuButton

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