Aracılığıyla paylaş


CMFCColorMenuButton Sınıfı

sınıfı, CMFCColorMenuButton renk seçici iletişim kutusunu başlatan bir menü komutunu veya araç çubuğu düğmesini destekler.

Sözdizimi

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Üyeler

Ortak Oluşturucular

Ad Tanım
CMFCColorMenuButton::CMFCColorMenuButton Bir CMFCColorMenuButton nesne oluşturur.

Genel Yöntemler

Ad Tanım
CMFCColorMenuButton::EnableAutomaticButton Normal renk düğmelerinin üzerine yerleştirilmiş bir "otomatik" düğmeyi etkinleştirir ve devre dışı bırakır. (Standart sistem otomatik düğmesi etiketlenmiştir Otomatik.)
CMFCColorMenuButton::EnableDocumentColors Sistem renkleri yerine belgeye özgü renklerin görüntülenmesini sağlar.
CMFCColorMenuButton::EnableOtherButton Normal renk düğmelerinin altına yerleştirilmiş bir "diğer" düğmesini etkinleştirir ve devre dışı bırakır. (Standart sistem "diğer" düğmesi etiketlenmiştir Diğer Renkler.)
CMFCColorMenuButton::EnableTearOff Bir renk bölmesinin yırtılma özelliğini etkinleştirir.
CMFCColorMenuButton::GetAutomaticColor Geçerli otomatik rengi alır.
CMFCColorMenuButton::GetColor Geçerli düğmenin rengini alır.
CMFCColorMenuButton::GetColorByCmdID Belirtilen komut kimliğine karşılık gelen rengi alır.
CMFCColorMenuButton::OnChangeParentWnd Üst pencere değiştiğinde çerçeve tarafından çağrılır.
CMFCColorMenuButton::OpenColorDialog Renk seçimi iletişim kutusunu açar.
CMFCColorMenuButton::SetColor Geçerli renk düğmesinin rengini ayarlar.
CMFCColorMenuButton::SetColorByCmdID Belirtilen renk menü düğmesinin rengini ayarlar.
CMFCColorMenuButton::SetColorName Belirtilen renk için yeni bir ad ayarlar.
CMFCColorMenuButton::SetColumnsNumber Bir CMFCColorBar nesne tarafından görüntülenen sütun sayısını ayarlar.

Korumalı Yöntemler

Ad Tanım
CMFCColorMenuButton::CopyFrom Geçerli düğmeye başka bir araç çubuğu düğmesi kopyalar.
CMFCColorMenuButton::CreatePopupMenu Renk seçici iletişim kutusu oluşturur.
CMFCColorMenuButton::IsEmptyMenuAllowed Boş menülerin desteklenip desteklenmediğini gösterir.
CMFCColorMenuButton::OnDraw Bir düğme üzerinde görüntü görüntülemek için çerçeve tarafından çağrılır.
CMFCColorMenuButton::OnDrawOnCustomizeList Bir nesne araç çubuğu özelleştirme iletişim kutusu listesinde görüntülenmeden önce CMFCColorMenuButton çerçeve tarafından çağrılır.

Açıklamalar

Özgün menü komutunu veya araç çubuğu düğmesini bir CMFCColorMenuButton nesneyle değiştirmek için nesnesini oluşturunCMFCColorMenuButton, uygun CMFCColorBar Sınıf stillerini ayarlayın ve ardından CMFCToolBar Sınıfı sınıfının yöntemini çağırınReplaceButton. Bir araç çubuğunu özelleştirirseniz, CMFCToolBarsCustomizeDialog::ReplaceButton yöntemini çağırın.

Renk seçici iletişim kutusu, CMFCColorMenuButton::CreatePopupMenu olay işleyicisi işlenirken oluşturulur. Olay işleyicisi üst çerçeveye bir WM_COMMAND iletisiyle bildirir. nesnesi, CMFCColorMenuButton özgün menü komutuna veya araç çubuğu düğmesine atanan denetim kimliğini gönderir.

Örnek

Aşağıdaki örnekte, sınıftaki çeşitli yöntemleri kullanarak bir renk menüsü düğmesinin nasıl oluşturulacağı ve yapılandıracağı CMFCColorMenuButton gösterilmektedir. Örnekte, önce bir CPalette nesne oluşturulur ve ardından sınıfının bir nesnesini CMFCColorMenuButton oluşturmak için kullanılır. Nesne CMFCColorMenuButton daha sonra otomatik ve diğer düğmeleri etkinleştirilerek ve rengini ve sütun sayısını ayarlayarak yapılandırılır. Bu kod, Word Pad örneğinin bir parçasıdır.

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

Devralma Hiyerarşisi

Cobject

CMFCToolBarButton

Cmfctoolbarmenubutton

Cmfccolormenubutton

Gereksinimler

Üst bilgi: afxcolormenubutton.h

CMFCColorMenuButton::CMFCColorMenuButton

Bir CMFCColorMenuButton nesne oluşturur.

CMFCColorMenuButton();

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

Parametreler

uiCmdID
[in] Düğme komut kimliği.

lpszText
[in] Düğme metni.

pPalette
[in] Düğmenin renk paletinin işaretçisi.

İade Değeri

Açıklamalar

İlk oluşturucu varsayılan oluşturucudur. Nesnenin geçerli rengi ve otomatik rengi siyah olarak başlatılır (RGB(0, 0, 0)).

İkinci oluşturucu, düğmeyi belirtilen komut kimliğine karşılık gelen renge başlatır.

CMFCColorMenuButton::CopyFrom

Bir CMFCToolBarMenuButton Sınıfı türetilmiş nesnesini başka bir nesneye kopyalar.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parametreler

Src
[in] Kopyalanacak kaynak düğmesi.

Açıklamalar

Nesneden CMFCColorMenuButton türetilen nesneleri kopyalamak için bu yöntemi geçersiz kılın.

CMFCColorMenuButton::CreatePopupMenu

Renk seçici iletişim kutusu oluşturur.

virtual CMFCPopupMenu* CreatePopupMenu();

İade Değeri

Renk seçici iletişim kutusunu temsil eden nesne.

Açıklamalar

Bu yöntem, kullanıcı bir renk menüsü düğmesine bastığında çerçeve tarafından çağrılır.

CMFCColorMenuButton::EnableAutomaticButton

Normal renk düğmelerinin üzerine yerleştirilmiş bir "otomatik" düğmeyi etkinleştirir ve devre dışı bırakır. (Standart sistem otomatik düğmesi etiketlenmiştir Otomatik.)

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

Parametreler

lpszLabel
[in] Düğme otomatik hale geldiğinde görüntülenecek düğme metnini belirtir.

Colorautomatic
[in] Yeni bir otomatik renk belirtir.

bEnable
[in] Düğmenin otomatik olup olmadığını belirtir.

Açıklamalar

Otomatik düğme geçerli varsayılan rengi uygular.

CMFCColorMenuButton::EnableDocumentColors

Sistem renkleri yerine belgeye özgü renklerin görüntülenmesini sağlar.

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

Parametreler

lpszLabel
[in] Düğme metnini belirtir.

bEnable
[in] Belgeye özgü renkleri görüntülemek için TRUE veya sistem renklerini görüntülemek için YANLIŞ.

Açıklamalar

Kullanıcı bir renk menüsü düğmesine tıkladığında geçerli belge renklerini veya sistem paleti renklerini görüntülemek için bu yöntemi kullanın.

CMFCColorMenuButton::EnableOtherButton

Normal renk düğmelerinin altına yerleştirilmiş bir "diğer" düğmesini etkinleştirir ve devre dışı bırakır. (Standart sistem "diğer" düğmesi etiketlenmiştir Diğer Renkler.)

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

Parametreler

lpszLabel
[in] Düğme metnini belirtir.

bAltColorDlg
[in] İletişim kutusunu görüntülemek için DOĞRU'yu CMFCColorDialog veya standart sistem rengi iletişim kutusunu görüntülemek için YANLIŞ'ı belirtin.

bEnable
[in] "Diğer" düğmesini görüntülemek için TRUE belirtin; aksi takdirde YANLIŞ. Varsayılan değer TRUE'dur.

Açıklamalar

CMFCColorMenuButton::EnableTearOff

Bir renk bölmesinin yırtılma özelliğini etkinleştirir.

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

Parametreler

uiID
[in] Yırtılma bölmesinin kimliğini belirtir.

nVertDockColumns
[in] Yırtılma durumundayken dikey olarak yerleştirilmiş renk bölmesindeki sütun sayısını belirtir.

nHorzDockRows
[in] Yırtılma durumundayken yatay olarak yerleştirilmiş renk bölmesinin satır sayısını belirtir.

Açıklamalar

Düğmeye basıldığında açılan renk bölmesi için "yırtılma" özelliğini etkinleştirmek için bu yöntemi çağırın CMFCColorMenuButton .

CMFCColorMenuButton::GetAutomaticColor

Geçerli otomatik rengi alır.

COLORREF GetAutomaticColor() const;

İade Değeri

Geçerli otomatik rengi temsil eden RGB renk değeri.

Açıklamalar

CMFCColorMenuButton::EnableAutomaticButton tarafından ayarlanan otomatik rengi almak için bu yöntemi çağırın.

CMFCColorMenuButton::GetColor

Geçerli düğmenin rengini alır.

COLORREF GetColor() const;

İade Değeri

Düğmenin rengi.

Açıklamalar

CMFCColorMenuButton::GetColorByCmdID

Belirtilen komut kimliğine karşılık gelen rengi alır.

static COLORREF GetColorByCmdID(UINT uiCmdID);

Parametreler

uiCmdID
[in] Bir komut kimliği.

İade Değeri

Belirtilen komut kimliğine karşılık gelen renk.

Açıklamalar

Bir uygulamada birkaç renk düğmeniz varsa bu yöntemi kullanın. Kullanıcı bir renk düğmesine tıkladığında, düğme komut kimliğini WM_COMMAND bir iletide üst öğesine gönderir. yöntemi, GetColorByCmdID ilgili rengi almak için komut kimliğini kullanır.

CMFCColorMenuButton::IsEmptyMenuAllowed

Boş menülerin desteklenip desteklenmediğini gösterir.

virtual BOOL IsEmptyMenuAllowed() const;

İade Değeri

Boş menülere izin veriliyorsa sıfır olmayan; aksi takdirde, sıfır.

Açıklamalar

Boş menüler varsayılan olarak desteklenir. Türetilmiş sınıfta bu davranışı değiştirmek için bu yöntemi geçersiz kılın.

CMFCColorMenuButton::OnChangeParentWnd

Üst pencere değiştiğinde çerçeve tarafından çağrılır.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parametreler

pWndParent
[in] Yeni üst pencerenin işaretçisi.

Açıklamalar

CMFCColorMenuButton::OnDraw

Bir düğme üzerinde görüntü görüntülemek için çerçeve tarafından çağrılır.

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

Parametreler

Pdc
[in] Cihaz bağlamı işaretçisi.

Rect
[in] Yeniden çizilecek alanı sınırlayan dikdörtgen.

pImages
[in] Araç çubuğu görüntülerinin listesini gösterir.

bHorz
[in] Araç çubuğunun yatay yerleşik durumda olduğunu belirtmek için TRUE; aksi takdirde YANLIŞ. Varsayılan değer TRUE'dur.

bCustomizeMode
[in] Uygulamanın özelleştirme modunda olduğunu belirtmek için TRUE; aksi takdirde YANLIŞ. Varsayılan değer YANLIŞ'tır.

bHighlight
[in] Düğmenin vurgulandığını belirtmek için TRUE; aksi takdirde YANLIŞ. Varsayılan değer YANLIŞ'tır.

bDrawBorder
[in] Düğme kenarlarının görüntüleneceğini belirtmek için DOĞRU; aksi takdirde YANLIŞ. Varsayılan değer TRUE'dur.

bGrayDisabledButtons
[in] Devre dışı bırakılan düğmelerin gri (soluk) olarak gösterileceğini belirtmek için DOĞRU; aksi takdirde YANLIŞ. Varsayılan değer TRUE'dur.

Açıklamalar

CMFCColorMenuButton::OnDrawOnCustomizeList

Bir nesne araç çubuğu özelleştirme iletişim kutusu listesinde görüntülenmeden önce CMFCColorMenuButton çerçeve tarafından çağrılır.

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

Parametreler

Pdc
[in] Cihaz bağlamı işaretçisi.

Rect
[in] Çizilecek düğmeyi sınırlayan dikdörtgen.

bSelected
[in] TRUE, düğmenin seçili durumda olduğunu belirtir; aksi takdirde YANLIŞ.

İade Değeri

Düğmenin genişliği.

Açıklamalar

Bu yöntem, araç çubuğu özelleştirme işlemi sırasında liste kutusunda bir CMFCColorMenuButton nesne görüntülendiğinde çerçeve tarafından çağrılır.

CMFCColorMenuButton::OpenColorDialog

Renk seçimi iletişim kutusunu açar.

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

Parametreler

colorDefault
[in] Renk iletişim kutusunda seçilen varsayılan renk.

colorRes
[out] Kullanıcının renk iletişim kutusundan seçtiği rengi döndürür.

İade Değeri

Kullanıcı yeni bir renk seçerse sıfır olmayan; aksi takdirde, sıfır.

Açıklamalar

Menü düğmesine tıklandığında, renk iletişim kutusunu açmak için bu yöntemi çağırın. Dönüş değeri sıfır değilse, kullanıcının seçtiği renk colorRes parametresinde depolanır. Standart renk iletişim kutusu ile CMFCColorDialog Sınıfı iletişim kutusu arasında geçiş yapmak için CMFCColorMenuButton::EnableOtherButton yöntemini kullanın.

CMFCColorMenuButton::SetColor

Geçerli renk düğmesinin rengini ayarlar.

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

Parametreler

Clr
[in] RGB renk değeri.

bNotify
[in] clr parametre rengini ilişkili menü düğmesine veya araç çubuğu düğmesine uygulamak için TRUE; aksi takdirde YANLIŞ.

Açıklamalar

Geçerli renk düğmesinin rengini değiştirmek için bu yöntemi çağırın. bNotify parametresi sıfır değilse, ilişkili herhangi bir açılır menü veya araç çubuğundaki ilgili düğmenin rengi clr parametresi tarafından belirtilen renge değiştirilir.

CMFCColorMenuButton::SetColorByCmdID

Belirtilen renk menü düğmesinin rengini ayarlar.

static void SetColorByCmdID(
    UINT uiCmdID,
    COLORREF color);

Parametreler

uiCmdID
[in] Renk menüsü düğmesinin kaynak kimliği.

Renk
[in] RGB renk değeri.

CMFCColorMenuButton::SetColorName

Belirtilen renk için yeni bir ad ayarlar.

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

Parametreler

Renk
[in] Adı değişen rengin RGB değeri.

strName
[in] Rengin yeni adı.

Açıklamalar

CMFCColorMenuButton::SetColumnsNumber

Renk seçimi denetiminde görüntülenecek sütun sayısını ayarlar ( CMFCColorBar nesnesi).

void SetColumnsNumber(int nColumns);

Parametreler

nSütunlar
[in] Görüntülenecek sütun sayısı.

Açıklamalar

Ayrıca bkz.

Hiyerarşi Grafiği
Sınıflar
CMFCColorBar Sınıfı
CMFCToolBar Sınıfı
CMFCToolBarsCustomizeDialog Sınıfı
CMFCColorButton Sınıfı