次の方法で共有


CMFCColorMenuButton クラス

CMFCColorMenuButton クラスは、カラー ピッカー ダイアログ ボックスを開始するメニュー コマンドまたはツール バー ボタンをサポートします。

構文

class CMFCColorMenuButton : public CMFCToolBarMenuButton

メンバー

パブリック コンストラクター

名前 説明
CMFCColorMenuButton::CMFCColorMenuButton CMFCColorMenuButton オブジェクトを構築します。

パブリック メソッド

名前 説明
CMFCColorMenuButton::EnableAutomaticButton 通常のカラー ボタンの上に配置される "自動" ボタンを有効または無効にします。 (標準システムの自動ボタンには、 ラベルが付けられます自動.)
CMFCColorMenuButton::EnableDocumentColors システムの色ではなく、ドキュメント固有の色の表示を有効にします。
CMFCColorMenuButton::EnableOtherButton 通常のカラー ボタンの下に配置されている "その他" ボタンを有効または無効にします。 (標準システムの [その他] ボタンには、 ラベルが付けられますその他の色.)
CMFCColorMenuButton::EnableTearOff カラー ウィンドウを破棄する機能を有効にします。
CMFCColorMenuButton::GetAutomaticColor 現在の自動色を取得します。
CMFCColorMenuButton::GetColor 現在のボタンの色を取得します。
CMFCColorMenuButton::GetColorByCmdID 指定したコマンド ID に対応する色を取得します。
CMFCColorMenuButton::OnChangeParentWnd 親ウィンドウが変更されたときにフレームワークによって呼び出されます。
CMFCColorMenuButton::OpenColorDialog 色選択ダイアログ ボックスを開きます。
CMFCColorMenuButton::SetColor 現在の色ボタンの色を設定します。
CMFCColorMenuButton::SetColorByCmdID 指定したカラー メニュー ボタンの色を設定します。
CMFCColorMenuButton::SetColorName 指定した色の新しい名前を設定します。
CMFCColorMenuButton::SetColumnsNumber CMFCColorBar オブジェクトによって表示される列の数を設定します。

保護メソッド

名前 説明
CMFCColorMenuButton::CopyFrom 別のツール バー ボタンを現在のボタンにコピーします。
CMFCColorMenuButton::CreatePopupMenu カラー ピッカー ダイアログ ボックスを作成します。
CMFCColorMenuButton::IsEmptyMenuAllowed 空のメニューがサポートされているかどうかを示します。
CMFCColorMenuButton::OnDraw ボタンに画像を表示するためにフレームワークによって呼び出されます。
CMFCColorMenuButton::OnDrawOnCustomizeList ツール バーのカスタマイズ ダイアログ ボックスの一覧に CMFCColorMenuButton オブジェクトが表示される前に、フレームワークによって呼び出されます。

解説

元のメニュー コマンドまたはツール バー ボタンをCMFCColorMenuButton オブジェクトに置き換えるには、CMFCColorMenuButton オブジェクトを作成し、適切な CMFCColorBar クラス スタイルを設定してから、CMFCToolBar クラス クラスのReplaceButton メソッドを呼び出します。 ツール バーをカスタマイズする場合は、 CMFCToolBarsCustomizeDialog::ReplaceButton メソッドを呼び出します。

カラー ピッカー ダイアログ ボックスは、 CMFCColorMenuButton::CreatePopupMenu イベント ハンドラーの処理中に作成されます。 イベント ハンドラーは、WM_COMMAND メッセージを使用して親フレームに通知します。 CMFCColorMenuButton オブジェクトは、元のメニュー コマンドまたはツール バー ボタンに割り当てられているコントロール ID を送信します。

次の例では、 CMFCColorMenuButton クラスのさまざまなメソッドを使用して、カラー メニュー ボタンを作成および構成する方法を示します。 この例では、 CPalette オブジェクトを最初に作成してから、 CMFCColorMenuButton クラスのオブジェクトを構築するために使用します。 その後、 CMFCColorMenuButton オブジェクトは、その自動ボタンとその他のボタンを有効にし、その色と列数を設定することによって構成されます。 このコードは、 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;
}

継承階層

CObject

CMFCToolBarButton

CMFCToolBarMenuButton

CMFCColorMenuButton

要件

Header: afxcolormenubutton.h

CMFCColorMenuButton::CMFCColorMenuButton

CMFCColorMenuButton オブジェクトを構築します。

CMFCColorMenuButton();

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

パラメーター

uiCmdID
[in]ボタン コマンド ID。

lpszText
[in]ボタンのテキスト。

pPalette
[in]ボタンのカラー パレットへのポインター。

戻り値

解説

最初のコンストラクターは既定のコンストラクターです。 オブジェクトの現在の色と自動色は黒 (RGB(0, 0, 0)) に初期化されます。

2 番目のコンストラクターは、指定したコマンド ID に対応する色にボタンを初期化します。

CMFCColorMenuButton::CopyFrom

1 つの CMFCToolBarMenuButton クラス派生オブジェクトを別のオブジェクトにコピーします。

virtual void CopyFrom(const CMFCToolBarButton& src);

パラメーター

src
[in]コピーする [ソース] ボタン。

解説

CMFCColorMenuButton オブジェクトから派生したオブジェクトをコピーするには、このメソッドをオーバーライドします。

CMFCColorMenuButton::CreatePopupMenu

カラー ピッカー ダイアログ ボックスを作成します。

virtual CMFCPopupMenu* CreatePopupMenu();

戻り値

カラー ピッカー ダイアログ ボックスを表すオブジェクト。

解説

このメソッドは、ユーザーがカラー メニュー ボタンを押すとフレームワークによって呼び出されます。

CMFCColorMenuButton::EnableAutomaticButton

通常のカラー ボタンの上に配置される "自動" ボタンを有効または無効にします。 (標準システムの自動ボタンには、 ラベルが付けられます自動.)

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

パラメーター

lpszLabel
[in]ボタンが自動になったときに表示されるボタン テキストを指定します。

colorAutomatic
[in]新しい自動色を指定します。

bEnable
[in]ボタンが自動かどうかを指定します。

解説

自動ボタンは、現在の既定の色を適用します。

CMFCColorMenuButton::EnableDocumentColors

システムの色ではなく、ドキュメント固有の色の表示を有効にします。

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

パラメーター

lpszLabel
[in]ボタンのテキストを指定します。

bEnable
[in]ドキュメント固有の色を表示する場合は TRUE、システムの色を表示する場合は FALSE。

解説

ユーザーがカラー メニュー ボタンをクリックしたときに、現在のドキュメントの色またはシステム パレットの色を表示するには、このメソッドを使用します。

CMFCColorMenuButton::EnableOtherButton

通常のカラー ボタンの下に配置されている "その他" ボタンを有効または無効にします。 (標準システムの [その他] ボタンには、 ラベルが付けられますその他の色.)

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

パラメーター

lpszLabel
[in]ボタンのテキストを指定します。

bAltColorDlg
[in][ CMFCColorDialog ] ダイアログ ボックスを表示するには TRUE を指定し、標準システムの色ダイアログ ボックスを表示するには FALSE を指定します。

bEnable
[in]"other" ボタンを表示するには TRUE を指定します。それ以外の場合は FALSE。 既定は TRUE です。

解説

CMFCColorMenuButton::EnableTearOff

カラー ウィンドウを破棄する機能を有効にします。

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

パラメーター

uiID
[in]破棄ウィンドウの ID を指定します。

nVertDockColumns
[in]ティアオフ状態の垂直固定カラー ペインの列数を指定します。

nHorzDockRows
[in]ティアオフ状態の場合に、水平方向にドッキングされた色ペインの行数を指定します。

解説

このメソッドを呼び出して、 CMFCColorMenuButton ボタンが押されたときにポップアップ表示されるカラー ウィンドウの "ティアオフ" 機能を有効にします。

CMFCColorMenuButton::GetAutomaticColor

現在の自動色を取得します。

COLORREF GetAutomaticColor() const;

戻り値

現在の自動色を表す RGB カラー値。

解説

このメソッドを呼び出して、 CMFCColorMenuButton::EnableAutomaticButton::EnableAutomaticButton によって設定される自動色を取得します。

CMFCColorMenuButton::GetColor

現在のボタンの色を取得します。

COLORREF GetColor() const;

戻り値

ボタンの色。

解説

CMFCColorMenuButton::GetColorByCmdID

指定したコマンド ID に対応する色を取得します。

static COLORREF GetColorByCmdID(UINT uiCmdID);

パラメーター

uiCmdID
[in]コマンド ID。

戻り値

指定したコマンド ID に対応する色。

解説

アプリケーションに複数のカラー ボタンがある場合は、このメソッドを使用します。 ユーザーがカラー ボタンをクリックすると、ボタンはWM_COMMAND メッセージ内のコマンド ID を親に送信します。 GetColorByCmdID メソッドは、コマンド ID を使用して対応する色を取得します。

CMFCColorMenuButton::IsEmptyMenuAllowed

空のメニューがサポートされているかどうかを示します。

virtual BOOL IsEmptyMenuAllowed() const;

戻り値

空のメニューが許可されている場合は 0 以外。それ以外の場合は 0。

解説

空のメニューは、既定でサポートされています。 派生クラスでこの動作を変更するには、このメソッドをオーバーライドします。

CMFCColorMenuButton::OnChangeParentWnd

親ウィンドウが変更されたときにフレームワークによって呼び出されます。

virtual void OnChangeParentWnd(CWnd* pWndParent);

パラメーター

pWndParent
[in]新しい親ウィンドウへのポインター。

解説

CMFCColorMenuButton::OnDraw

ボタンに画像を表示するためにフレームワークによって呼び出されます。

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

パラメーター

pDC
[入力] デバイス コンテキストへのポインター。

rect
[in]再描画する領域を囲む四角形。

pImages
[in]ツール バーイメージの一覧をポイントします。

bHorz
[in]ツールバーが水平ドッキング状態であることを指定する場合は TRUE。それ以外の場合は FALSE。 既定は TRUE です。

bCustomizeMode
[in]アプリケーションがカスタマイズ モードであることを指定する場合は TRUE。それ以外の場合は FALSE。 既定値は FALSE です。

bHighlight
[in]ボタンが強調表示されていることを指定する場合は TRUE。それ以外の場合は FALSE。 既定値は FALSE です。

bDrawBorder
[in]ボタンの境界線が表示されることを指定する場合は TRUE。それ以外の場合は FALSE。 既定は TRUE です。

bGrayDisabledButtons
[in]無効なボタンが淡色表示 (淡色表示) されることを指定する場合は TRUE。それ以外の場合は FALSE。 既定は TRUE です。

解説

CMFCColorMenuButton::OnDrawOnCustomizeList

ツール バーのカスタマイズ ダイアログ ボックスの一覧に CMFCColorMenuButton オブジェクトが表示される前に、フレームワークによって呼び出されます。

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

パラメーター

pDC
[入力] デバイス コンテキストへのポインター。

rect
[in]描画するボタンを囲む四角形。

bSelected
[in]TRUE は、ボタンが選択された状態であることを指定します。それ以外の場合は FALSE。

戻り値

ボタンの幅。

解説

このメソッドは、ツール バーのカスタマイズ プロセス中に CMFCColorMenuButton オブジェクトがリスト ボックスに表示されるときに、フレームワークによって呼び出されます。

CMFCColorMenuButton::OpenColorDialog

色選択ダイアログ ボックスを開きます。

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

パラメーター

colorDefault
[in][色] ダイアログ ボックスで選択されている既定の色。

colorRes
[out]ユーザーが [色] ダイアログ ボックスから選択した色を返します。

戻り値

ユーザーが新しい色を選択した場合は 0 以外。それ以外の場合は 0。

解説

メニュー ボタンがクリックされたら、このメソッドを呼び出して、色のダイアログ ボックスを開きます。 戻り値が 0 以外の場合、ユーザーが選択した色は colorRes パラメーターに格納されます。 CMFCColorMenuButton::EnableOtherButton メソッドを使用して、標準の色ダイアログ ボックスと CMFCColorDialog クラス ダイアログ ボックスを切り替えます。

CMFCColorMenuButton::SetColor

現在の色ボタンの色を設定します。

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

パラメーター

clr
[in]RGB カラー値。

bNotify
[in]関連付けられているメニュー ボタンまたはツール バー ボタンに clr パラメーターの色を適用する場合は TRUE。それ以外の場合は FALSE。

解説

現在の色ボタンの色を変更するには、このメソッドを呼び出します。 bNotify パラメーターが 0 以外の場合、関連付けられているポップアップ メニューまたはツール バーの対応するボタンの色が、clr パラメーターで指定された色に変更されます。

CMFCColorMenuButton::SetColorByCmdID

指定したカラー メニュー ボタンの色を設定します。

static void SetColorByCmdID(
    UINT uiCmdID,
    COLORREF color);

パラメーター

uiCmdID
[in]カラー メニュー ボタンのリソース ID。

color
[in]RGB カラー値。

CMFCColorMenuButton::SetColorName

指定した色の新しい名前を設定します。

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

パラメーター

color
[in]名前が変更される色の RGB 値。

strName
[in]色の新しい名前。

解説

CMFCColorMenuButton::SetColumnsNumber

カラー選択コントロール ( CMFCColorBar オブジェクト) に表示する列の数を設定します。

void SetColumnsNumber(int nColumns);

パラメーター

nColumns
[in]表示する列の数。

解説

関連項目

階層図
クラス
CMFCColorBar クラス
CMFCToolBar クラス
CMFCToolBarsCustomizeDialog クラス
CMFCColorButton クラス