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
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ı