Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa CMFCColorMenuButton obsługuje polecenie menu lub przycisk paska narzędzi, który uruchamia okno dialogowe selektora kolorów.
Składnia
class CMFCColorMenuButton : public CMFCToolBarMenuButton
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
| CMFCColorMenuButton::CMFCColorMenuButton | CMFCColorMenuButton Tworzy obiekt. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
| CMFCColorMenuButton::EnableAutomaticButton | Włącza i wyłącza przycisk "automatyczny", który znajduje się powyżej zwykłych przycisków kolorów. (Standardowy przycisk automatyczny systemu jest oznaczony etykietą Automatyczne.) |
| CMFCColorMenuButton::EnableDocumentColors | Włącza wyświetlanie kolorów specyficznych dla dokumentu zamiast kolorów systemowych. |
| CMFCColorMenuButton::EnableOtherButton | Włącza i wyłącza przycisk "inny" umieszczony poniżej zwykłych przycisków kolorów. (Standardowy przycisk "inny" system jest oznaczony etykietą Więcej kolorów). |
| CMFCColorMenuButton::EnableTearOff | Umożliwia odcięcie okienka kolorów. |
| CMFCColorMenuButton::GetAutomaticColor | Pobiera bieżący kolor automatyczny. |
| CMFCColorMenuButton::GetColor | Pobiera kolor bieżącego przycisku. |
| CMFCColorMenuButton::GetColorByCmdID | Pobiera kolor odpowiadający określonemu identyfikatorowi polecenia. |
| CMFCColorMenuButton::OnChangeParentWnd | Wywoływana przez platformę po zmianie okna nadrzędnego. |
| CMFCColorMenuButton::OpenColorDialog | Otwiera okno dialogowe wyboru kolorów. |
| CMFCColorMenuButton::SetColor | Ustawia kolor bieżącego przycisku koloru. |
| CMFCColorMenuButton::SetColorByCmdID | Ustawia kolor określonego przycisku menu kolorów. |
| CMFCColorMenuButton::SetColorName | Ustawia nową nazwę dla określonego koloru. |
| CMFCColorMenuButton::SetColumnsNumber | Ustawia liczbę kolumn wyświetlanych przez CMFCColorBar obiekt. |
Metody chronione
| Nazwa/nazwisko | opis |
|---|---|
| CMFCColorMenuButton::CopyFrom | Kopiuje kolejny przycisk paska narzędzi do bieżącego przycisku. |
| CMFCColorMenuButton::CreatePopupMenu | Tworzy okno dialogowe selektora kolorów. |
| CMFCColorMenuButton::IsEmptyMenuAllowed | Wskazuje, czy obsługiwane są puste menu. |
| CMFCColorMenuButton::OnDraw | Wywoływana przez platformę w celu wyświetlenia obrazu na przycisku. |
| CMFCColorMenuButton::OnDrawOnCustomizeList | Wywoływana przez platformę przed wyświetleniem CMFCColorMenuButton obiektu na liście okna dialogowego dostosowywania paska narzędzi. |
Uwagi
Aby zastąpić oryginalne polecenie menu lub przycisk paska narzędzi obiektemCMFCColorMenuButton, utwórz CMFCColorMenuButton obiekt, ustaw odpowiednie style klasy CMFCColorBar, a następnie wywołaj ReplaceButton metodę klasy KLASY CMFCToolBar. Jeśli dostosujesz pasek narzędzi, wywołaj metodę CMFCToolBarsCustomizeDialog::ReplaceButton .
Okno dialogowe selektora kolorów jest tworzone podczas przetwarzania programu obsługi zdarzeń CMFCColorMenuButton::CreatePopupMenu . Program obsługi zdarzeń powiadamia ramkę nadrzędną z komunikatem WM_COMMAND. Obiekt CMFCColorMenuButton wysyła identyfikator kontrolki przypisany do oryginalnego polecenia menu lub przycisku paska narzędzi.
Przykład
W poniższym przykładzie pokazano, jak utworzyć i skonfigurować przycisk menu kolorów przy użyciu różnych metod w CMFCColorMenuButton klasie. W tym przykładzie obiekt jest najpierw tworzony, CPalette a następnie używany do konstruowania obiektu CMFCColorMenuButton klasy. Następnie CMFCColorMenuButton obiekt jest konfigurowany przez włączenie jego automatycznych i innych przycisków oraz ustawienie koloru i liczby kolumn. Ten kod jest częścią przykładu programu Word Pad.
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;
}
Hierarchia dziedziczenia
Wymagania
Nagłówek: afxcolormenubutton.h
CMFCColorMenuButton::CMFCColorMenuButton
CMFCColorMenuButton Tworzy obiekt.
CMFCColorMenuButton();
CMFCColorMenuButton(
UINT uiCmdID,
LPCTSTR lpszText,
CPalette* pPalette=NULL);
Parametry
uiCmdID
[in] Identyfikator polecenia przycisku.
lpszText
[in] Tekst przycisku.
pPalette
[in] Wskaźnik do palety kolorów przycisku.
Wartość zwracana
Uwagi
Pierwszy konstruktor jest konstruktorem domyślnym. Bieżący kolor obiektu i automatyczny kolor są inicjowane na (RGB(0, 0, 0)).
Drugi konstruktor inicjuje przycisk do koloru odpowiadającego określonemu identyfikatorowi polecenia.
CMFCColorMenuButton::CopyFrom
Kopiuje jeden obiekt pochodny klasy CMFCToolBarMenuButton do innego.
virtual void CopyFrom(const CMFCToolBarButton& src);
Parametry
Src
[in] Przycisk Źródło do skopiowania.
Uwagi
Zastąp tę metodę, aby skopiować obiekty pochodzące z CMFCColorMenuButton obiektu.
CMFCColorMenuButton::CreatePopupMenu
Tworzy okno dialogowe selektora kolorów.
virtual CMFCPopupMenu* CreatePopupMenu();
Wartość zwracana
Obiekt reprezentujący okno dialogowe selektora kolorów.
Uwagi
Ta metoda jest wywoływana przez platformę, gdy użytkownik naciska przycisk menu kolorów.
CMFCColorMenuButton::EnableAutomaticButton
Włącza i wyłącza przycisk "automatyczny", który znajduje się powyżej zwykłych przycisków kolorów. (Standardowy przycisk automatyczny systemu jest oznaczony etykietą Automatyczne.)
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[in] Określa tekst przycisku, który jest wyświetlany, gdy przycisk staje się automatyczny.
colorAutomatic
[in] Określa nowy automatyczny kolor.
bEnable
[in] Określa, czy przycisk jest automatyczny, czy nie.
Uwagi
Przycisk automatyczny stosuje bieżący kolor domyślny.
CMFCColorMenuButton::EnableDocumentColors
Włącza wyświetlanie kolorów specyficznych dla dokumentu zamiast kolorów systemowych.
void EnableDocumentColors(
LPCTSTR lpszLabel,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[in] Określa tekst przycisku.
bEnable
[in] Wartość TRUE do wyświetlania kolorów specyficznych dla dokumentu lub FALSE w celu wyświetlania kolorów systemowych.
Uwagi
Użyj tej metody, aby wyświetlić bieżące kolory dokumentu lub kolory palety systemowej, gdy użytkownik kliknie przycisk menu kolorów.
CMFCColorMenuButton::EnableOtherButton
Włącza i wyłącza przycisk "inny" umieszczony poniżej zwykłych przycisków kolorów. (Standardowy przycisk "inny" system jest oznaczony etykietą Więcej kolorów).
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[in] Określa tekst przycisku.
bAltColorDlg
[in] Określ wartość TRUE, aby wyświetlić CMFCColorDialog okno dialogowe lub wartość FALSE, aby wyświetlić standardowe okno dialogowe koloru systemu.
bEnable
[in] Określ wartość TRUE, aby wyświetlić przycisk "inny"; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
Uwagi
CMFCColorMenuButton::EnableTearOff
Umożliwia odcięcie okienka kolorów.
void EnableTearOff(
UINT uiID,
int nVertDockColumns=-1,
int nHorzDockRows=-1);
Parametry
identyfikator uiID
[in] Określa identyfikator okienka odrętywania.
nVertDockColumns
[in] Określa liczbę kolumn w pionowo zadokowany okienku kolorów w stanie odrywania.
nHorzDockRows
[in] Określa liczbę wierszy dla okienka kolorów zadokowanego poziomo w stanie odrywania.
Uwagi
Wywołaj tę metodę, aby włączyć funkcję "odrywania" dla okienka kolorów, które jest wyświetlane po naciśnięciu CMFCColorMenuButton przycisku.
CMFCColorMenuButton::GetAutomaticColor
Pobiera bieżący kolor automatyczny.
COLORREF GetAutomaticColor() const;
Wartość zwracana
Wartość koloru RGB reprezentująca bieżący kolor automatyczny.
Uwagi
Wywołaj tę metodę, aby uzyskać automatyczny kolor ustawiony przez cmFCColorMenuButton::EnableAutomaticButton.
CMFCColorMenuButton::GetColor
Pobiera kolor bieżącego przycisku.
COLORREF GetColor() const;
Wartość zwracana
Kolor przycisku.
Uwagi
CMFCColorMenuButton::GetColorByCmdID
Pobiera kolor odpowiadający określonemu identyfikatorowi polecenia.
static COLORREF GetColorByCmdID(UINT uiCmdID);
Parametry
uiCmdID
[in] Identyfikator polecenia.
Wartość zwracana
Kolor odpowiadający określonemu identyfikatorowi polecenia.
Uwagi
Użyj tej metody, jeśli masz kilka przycisków kolorów w aplikacji. Gdy użytkownik kliknie przycisk koloru, przycisk wysyła identyfikator polecenia w komunikacie WM_COMMAND do elementu nadrzędnego. Metoda GetColorByCmdID używa identyfikatora polecenia, aby pobrać odpowiedni kolor.
CMFCColorMenuButton::IsEmptyMenuAllowed
Wskazuje, czy obsługiwane są puste menu.
virtual BOOL IsEmptyMenuAllowed() const;
Wartość zwracana
Niezerowe, jeśli puste menu są dozwolone; w przeciwnym razie zero.
Uwagi
Puste menu są domyślnie obsługiwane. Zastąp tę metodę, aby zmienić to zachowanie w klasie pochodnej.
CMFCColorMenuButton::OnChangeParentWnd
Wywoływana przez platformę po zmianie okna nadrzędnego.
virtual void OnChangeParentWnd(CWnd* pWndParent);
Parametry
pWndParent
[in] Wskaźnik do nowego okna nadrzędnego.
Uwagi
CMFCColorMenuButton::OnDraw
Wywoływana przez platformę w celu wyświetlenia obrazu na przycisku.
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);
Parametry
PDC
[in] Wskaźnik do kontekstu urządzenia.
Rect
[in] Prostokąt, który powiązał obszar do ponownego wyrysowania.
pImages
[in] Wskazuje listę obrazów pasków narzędzi.
bHorz
[in] WARTOŚĆ TRUE określająca, że pasek narzędzi jest w stanie zadokowania poziomego; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
bCustomizeMode
[in] WARTOŚĆ TRUE określająca, że aplikacja jest w trybie dostosowywania; w przeciwnym razie, FAŁSZ. Wartość domyślna to FALSE.
bHighlight
[in] WARTOŚĆ TRUE określająca, że przycisk jest wyróżniony; w przeciwnym razie, FAŁSZ. Wartość domyślna to FALSE.
bDrawBorder
[in] WARTOŚĆ TRUE, aby określić, że zostanie wyświetlone obramowanie przycisku; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
bGrayDisabledButtons
[in] PRAWDA, aby określić, że wyłączone przyciski są wyszarzone (wygaszone) obecnie; w przeciwnym razie, FAŁSZ. Wartość domyślna to TRUE.
Uwagi
CMFCColorMenuButton::OnDrawOnCustomizeList
Wywoływana przez platformę przed wyświetleniem CMFCColorMenuButton obiektu na liście okna dialogowego dostosowywania paska narzędzi.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
Parametry
PDC
[in] Wskaźnik do kontekstu urządzenia.
Rect
[in] Prostokąt, który łączy przycisk do narysowania.
bSelected
[in] Wartość TRUE określa, że przycisk jest w wybranym stanie; w przeciwnym razie, FAŁSZ.
Wartość zwracana
Szerokość przycisku.
Uwagi
Ta metoda jest wywoływana przez platformę CMFCColorMenuButton , gdy obiekt jest wyświetlany w polu listy podczas procesu dostosowywania paska narzędzi.
CMFCColorMenuButton::OpenColorDialog
Otwiera okno dialogowe wyboru kolorów.
virtual BOOL OpenColorDialog(
const COLORREF colorDefault,
COLORREF& colorRes);
Parametry
colorDefault
[in] Domyślny kolor wybrany w oknie dialogowym kolor.
colorRes
[out] Zwraca kolor wybierany przez użytkownika w oknie dialogowym koloru.
Wartość zwracana
Niezerowe, jeśli użytkownik wybierze nowy kolor; w przeciwnym razie zero.
Uwagi
Po kliknięciu przycisku menu wywołaj tę metodę, aby otworzyć okno dialogowe koloru. Jeśli wartość zwracana jest niezerowa, kolor wybrany przez użytkownika jest przechowywany w parametrze colorRes . Użyj metody CMFCColorMenuButton::EnableOtherButton, aby przełączyć się między standardowymi oknami dialogowymi a okno dialogowe Klasa CMFCColorDialog.
CMFCColorMenuButton::SetColor
Ustawia kolor bieżącego przycisku koloru.
virtual void SetColor(
COLORREF clr,
BOOL bNotify=TRUE);
Parametry
Clr
[in] Wartość koloru RGB.
bNotify
[in] TRUE, aby zastosować kolor parametru clr do dowolnego skojarzonego przycisku menu lub przycisku paska narzędzi; w przeciwnym razie FALSE.
Uwagi
Wywołaj tę metodę, aby zmienić kolor bieżącego przycisku koloru. Jeśli parametr bNotify jest inny niżzer, kolor odpowiedniego przycisku w dowolnym skojarzonym menu podręcznym lub pasku narzędzi zostanie zmieniony na kolor określony przez parametr clr.
CMFCColorMenuButton::SetColorByCmdID
Ustawia kolor określonego przycisku menu kolorów.
static void SetColorByCmdID(
UINT uiCmdID,
COLORREF color);
Parametry
uiCmdID
[in] Identyfikator zasobu przycisku menu kolorów.
Kolor
[in] Wartość koloru RGB.
CMFCColorMenuButton::SetColorName
Ustawia nową nazwę dla określonego koloru.
static void SetColorName(
COLORREF color,
const CString& strName);
Parametry
Kolor
[in] Wartość RGB koloru, którego nazwa zmienia się.
strName
[in] Nowa nazwa koloru.
Uwagi
CMFCColorMenuButton::SetColumnsNumber
Ustawia liczbę kolumn do wyświetlenia w kontrolce wyboru kolorów ( obiekt CMFCColorBar ).
void SetColumnsNumber(int nColumns);
Parametry
nKolumny
[in] Liczba kolumn do wyświetlenia.
Uwagi
Zobacz też
Wykres hierarchii
Klasy
Klasa CMFCColorBar
Klasa CMFCToolBar
Klasa CMFCToolBarsCustomizeDialog
Klasa CMFCColorButton